CSVファイル(カンマ区切りファイル)は、多くのシステムやWebサービスとのデータ受け渡しに使用される一般的な形式です。本記事では、VBAを使ってCSVファイルをExcelで自動的に開き、列幅を整えるマクロの作成方法をご紹介いたします。
目次
シナリオの概要
- Excelファイルと同じフォルダに「data.csv」というCSVファイルがあると想定します。
- マクロを実行すると、そのCSVファイルがExcelに読み込まれ、すべての列の幅が自動的に調整されます。
VBAコード:CSVファイルを開いて列幅を自動調整
Sub OpenAndFormatCSV()
Dim csvPath As String
csvPath = ThisWorkbook.Path & "\data.csv"
Workbooks.OpenText _
Filename:=csvPath, _
DataType:=xlDelimited, _
Comma:=True
ActiveSheet.Range("A1").CurrentRegion.EntireColumn.AutoFit
End Sub
解説
ThisWorkbook.Path
は、現在のマクロブックが保存されているフォルダのパスを取得します。Workbooks.OpenText
メソッドを使用することで、CSVファイルをExcelにインポートできます。DataType:=xlDelimited
とComma:=True
により、カンマ区切りとして正しく読み込まれます。- 最後に、読み込んだシートの全列幅を
AutoFit
メソッドで自動調整しています。
応用例
Semicolon:=True
を追加すれば、セミコロン区切りのCSVにも対応可能です。- 読み込み後にフォーマット(フォント、色、罫線など)を適用する処理を追加することで、レポート形式に整形することも可能です。
注意点
- CSVファイルの文字コードがShift-JIS以外(例:UTF-8)である場合、文字化けすることがあります。
Workbooks.OpenText
は新しいウィンドウでファイルを開くため、保存や閉じる処理を追加する場合は注意が必要です。
まとめ
本記事でご紹介した方法を使えば、CSVファイルを手間なくExcelで開き、すぐに作業可能な状態に整えることができます。日々の業務における定型作業の効率化に、ぜひお役立てください。