ここから本文です

VB A.csv と言うcsvファイルがあります。 中は 「201310101001,12345,2013/01/18...

oga********さん

2013/1/1813:40:13

VB
A.csv と言うcsvファイルがあります。
中は 「201310101001,12345,2013/01/18」で、12桁文字列、5桁文字列、日付(西暦)となっています。
レコード件数は毎回変動します。

このファイルをVBで作ったプログラム(アイコン)にドロップすれば、
一番左項目:12桁数値→左4桁を削除した8桁数値に 10101001
二番目項目はそのまま 12345
三番目項目:年を和暦に(2013→25) 25/01/18
に編集置換した状態で別ファイルとして同じフォルダー内に保存したいのです。

ご教授いただけないでしょうか。
よろしくお願い致します。

閲覧数:
295
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

ten********さん

2013/1/1911:04:46

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1196086806
の方に、
>恥ずかしながらスキルがありません。
>> 1)vbにするほどの処理ではないです。
>お恥ずかしい次第です。
とお書きですので、VBSでよろしいですね。

こちらは、「知恵袋トップ > コンピュータテクノロジー > プログラミング > Visual Basic」というカテゴリですので、「VB」とお書きになると、回答者は「Visual Basic」とか「VB.NET」などの難しい方をお考えになるかと存じますので、エクセルのVBAとか、今回のご質問の様にVBSで簡単に片付けたいご質問の場合は、「VB]ではなくて「VBA」とか「VBSなど」とお書きになった方がよいかと存じます。

さて、本題に入りますが、前ご質問で porihikoletskunさんがご回答になっていらっしゃるように、
1)下記のコードをメモ帳などにコピペします。
2)「.vbs」という拡張子でデスクトップなど、お好きなところに保存します。
ファイル名は何でも結構ですが、内容が分かりやすいものがよいかと存じます。
3)目的のCSVファイルを「~~.vbs」にD&Dします。
複数のファイルをドラッグしても構いません。
4)同じフォルダ内に「元々の名前_済.csv」というファイルができます。

ただし、
・CSVファイルでない
・フォーマットが「12桁文字列、5桁文字列、日付(西暦)」となっていない
などのエラートラップはしておりません。

また、「12桁数値→左4桁を削除した8桁数値」にした場合、CSVファイルの中で、左端の文字が「0」の場合は、エクセルで開いたときには、「0」を失います。
これを防ぐために、冒頭に「'」を付加しましたので、不要な場合は「"'" & 」を削除してください。

さらに、「年を和暦に(2013→25)」にした場合、CSVファイルの中では、「25/01/18」というような文字列になっていますが、エクセルで開いたときに「2025年」と解釈してしまいますので、先頭に「H」を付けました。
こうしておけば、エクセルの中でもC列を日付の文字列として、元の値のままにきちんと解釈してもらえます。
不要な場合は「"H" & 」を削除してください。

'--- ここから下をメモ帳にコピペしてください。----------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each csvFile In WScript.Arguments
With FSO.OpenTextFile(csvFile)
buf = .ReadAll
.Close
End With
With FSO.OpenTextFile(Replace(csvFile, "." & FSO.GetExtensionName(csvFile), "_済") & ".csv", 2, True)
For Each TextLine In Split(buf, vbNewLine)
If InStr(TextLine, ",") = 0 Then Exit For
myLine = Split(TextLine, ",")
.Writeline "'" & Right(myLine(0), 8) & "," & myLine(1) & "," & "H" & Left(myLine(2), 4) - 1988 & Right(myLine(2), 6)
Next
.Close
End With
Next
MsgBox "終わり"
'--- ここまで -----------------------------------------------------

質問した人からのコメント

2013/1/19 13:15:03

ありがとうございました。
意図する処理ができました。
また、ご指摘もありがとうございました。
今後の場合に注意いたします。
>今回のご質問の様にVBSで簡単に片付けたいご質問の場合は、「VB]ではなくて「VBA」とか「VBSなど」とお書きになった方がよいかと存じます。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる