CSVデータをExcel(.xlsx)ファイルで保存する方法
設備データから銀行口座の入出金データにいたるまで、さまざまな情報をパソコンで使用できるように配布されているデータにCSV形式があります
そのCSV形式をエクセルで扱いやすいように変換するVBA(マクロ)を記載します
例題として、Cドライブ下のTestフォルダー内にあるtest1というCSVファイルを拡張子 「.xlsx」のExcelファイルにして保存します(例文1)
本ページにはプロモーションが含まれています
例文1
Sub テスト1()Workbooks.Open Filename:="C:\Test\test1.csv"ActiveWorkbook.SaveAs _Filename:="C:\Test\test1.xlsx", _FileFormat:=xlOpenXMLWorkbookMsgBox (ActiveWorkbook.Name)ActiveWorkbook.CloseEnd sub
例文1の解説
- 1行目:test1というcsvファイルを開きます
- 2行目:開いているcsvファイルと同じ名前で、Excel(.xlsx)形式にして保存します
- 3行目:保存したファイル名の拡張子が「.xlsx」になっていることを確認します
- 4行目:保存したExcel(.xlsx)ファイルを閉じます
Cドライブ下のTestというフォルダー内にあるファイルです
すると、Testというフォルダーに同じ名前のExcelファイルが作成されます
ワンポイント アドバイス
ポイントは保存するファイル名(Filename)の後にFileFormatを指定することです
Filename:="C:\Test\test1.xlsx", _
FileFormat:=xlOpenXMLWorkbook
FileFormatで通常よく使うのが以下の3つです
- Excelブックの場合 FileFormat:=xlOpenXMLWorkbook
- マクロ有効ブックの場合 FileFormat:=xlOpenXMLWorkbookMacroEnabled
- CSVファイルの場合 FileFormat:=xlCSV
ではFileFormatを指定しなかったら、どうなるのでしょうか?
例文2
Sub テスト2()Workbooks.Open Filename:="C:\Test\test1.csv"ActiveWorkbook.SaveAs _Filename:="C:\Test\test1.xlsx"MsgBox (ActiveWorkbook.Name)ActiveWorkbook.CloseEnd sub
例文2の解説
- 1行目:test1というcsvファイルを開きます
- 2行目:csvファイルをExcel(.xlsx)ファイル形式で保存します
- 3行目:ファイル名の拡張子を確認します
- 4行目:Excel(.xlsx)ファイルを閉じます
FileFormatは指定していません
すると確認画面が表示されます
どのボタンをクリックしてもTestというフォルダーに同じ名前のExcelファイルが作成されますが
よく見ると正しく作成されたファイルとはサイズが異なります
試しにファイルを開いてみると
エラーメッセージが表示され、ファイルを開くことができませんでした
最後に
FileFormatは省略しがちですが、思わぬ結果に繋がりかねないので省略せずに記載することをおススメします
★これで外部データの取り込みが楽になりました★
コメント