質問: ### 実現したいこと vbsでデータが入っているxlsファイルをcsvファイルに変換できること ※ドラッグアンドドロップでvbsを実行する ### 試したこと 拡張子をxls→csvに変更したところ、A列にスペース区切りでデータが入ってしまいました。 おそらく、xlsにはカンマ区切りで保存されないためだと思います。 手動では、名前を付けて保存からcsv(カンマ区切り)を選択すれば解決できます。 ただ、その手間を省きたいため、xlsファイルをvbsにドラッグアンドドロップすることで csvファイルに変換できるようなコードを組むため、ネットでサンプルの検索中です。 ### コメント 実現可能でしたら、コードのご教示宜しくお願い致します。
回答: 丸投げ質問は推奨されませんが、暇だったので書いてみました。 ``` Option Explicit Dim xf Dim xls Dim bk Dim sh Dim fso If WScript.Arguments.Count = 0 then WScript.Quit(-1) End If xf = WScript.Arguments(0) ' オブジェクト作成 Set xls = CreateObject("Excel.Application") Set bk = xls.Workbooks.Open(xf) Set sh = bk.Worksheets(1) Set fso = CreateObject("Scripting.FileSystemObject") ' メッセージは無視する xls.DisplayAlerts = False ' CSV形式で保存 bk.SaveAs Left(xf, Len(xf) - Len(fso.GetExtensionName(xf)) - 1), 6 'xlCSV bk.Close xls.DisplayAlerts = True xls.Quit Set xls = Nothing Set fso = Nothing ``` 追記 > > 拡張子をxls→csvに変更したところ > > > これに触れてなかったので書いておきます。 ファイルのファイル名だけを変えても中身は変わりません。 例えるなら、ファイルを家、ファイル名を表札と考えるとわかりやすいかと。 田中さんが住んでいる家の表札を鈴木さんに変えても、中の人は田中さんのまま。 そこらへんはプログラミングとは関係なく、PCの基本的な話なので別途学習してください。