Excelからcsvファイル形式で保存すると
カンマ区切りになりますが値がダブルクォーテーション(“)で囲まれていません。
ダブルクォーテーション(“)で囲われていないcsvファイルは
各ソフトにデータをインポートした際正しく取り込まれなかったり不具合が生じるケースがあります。
ダブルクォーテーションを付与してくれるvbsファイルを作っておけば
csvファイルをドロップするだけでダブルクォーテーション付きのcsvファイルが保存されます。
vbsはWindowsなら標準で使えてテキストとしてメモ帳で編集して拡張子をvbsに変更するだけでも使えます。
csvファイルをドロップすると
csvファイルが保存されている場所に
ファイル名+「_ダブルクォーテーション付.csv」というファイルが保存されます。
◆vbsファイルをダウンロード
OneDriveからダウンロード
(※ブラウザやウイルスソフトによってはvbsファイルを
害を及ぼすファイルと認識してダウンロード出来ない場合があります。
そのような場合は下のコードをテキストとして保存し「.txt」を「.vbs」に変更して使用して下さい。)
Set objCsv = WScript.Arguments Set objFileSys = WScript.CreateObject("Scripting.FileSystemObject") Set objTxt = objFileSys.OpenTextFile(objCsv(0),1) Set objFolder = objFileSys.OpenTextFile(objFileSys.GetParentFolderName(objCsv(0)) & "\" & objFileSys.GetBaseName(objCsv(0)) & "_ダブルクォーテーション付.csv",2,True) Do Until objTxt.AtEndOfStream csvIn = objTxt.ReadLine objFolder.WriteLine """" & Replace(csvIn,",",""",""",1,-1,1) & """" Loop
コメント
非常に魅力的なVBAの公開ありがとうございます。
試してみたところ、一部が文字化けしてしまうようでした。
エクセル保存したCSVをダブルクォーテーションへ文字化けなしで保存したいのですが
他に方法はありますでしょうか。
コメントありがとうございます。
必ず解決できるとは決して言えませんが
どういった文字が文字化けしてしまったのか
差し支えなければ教えていただければと思います。
よろしくおねがいします。