Excelでデータを加工したり、複数のシステムでデータを連携するために、CSVファイルのデータを読み込んで、Excelに書き出したいことはよくありますよね。
本記事では、CSVファイルを読み込んで、Excelファイルに書き出すマクロ(文字コード指定可能)を作成します。
イメージはこんな感じ↓です!
CSVファイルを読み込むマクロ
1. VBAのソースコードを書く
ソースコードを書きましょう。処理内容はソースのコメントに書いてあります。

右上の”copy”をクリックしたらソースをコピーできますよ!
copy
Sub ReadCsvAndWriteCell()
Dim rowData, filePath As String
Dim arrSplitRowData As Variant
Dim rowCount, colCount As Long
' CSVファイルのフルパスを指定
filePath = "C:\Users\Public\Documents\VBA\売上.csv"
' ADODB.Streamを使う
With CreateObject("ADODB.Stream")
' 文字コードを設定
.Charset = "UTF-8"
' CSVファイルを開く
.Open
.LoadFromFile filePath
' CSVファイルを最後まで読み込む
Do Until .EOS
' データを1行読み込む
rowData = .ReadText(-2)
rowCount = rowCount + 1
' 読み込んだデータをカンマ区切りにする
arrSplitRowData = Split(rowData, ",")
' カンマ区切りにしたデータをExcelに書き込む
For colCount = 0 To UBound(arrSplitRowData)
Cells(rowCount, colCount + 1) = arrSplitRowData(colCount)
Next colCount
Loop
' ADODB.Streamを閉じる
.Close
End With
End Sub
本マクロのポイント
- CreateObject(“ADODB.Stream”)を使うことで、CSVファイルを読み込むときの文字コードを指定できるようにしています。本記事では、文字コードをUTF-8に設定しています。

日本語が文字化けしてしまう場合に備えています!
データをカンマ区切りで配列に設定していますが、配列の使い方をもっと知りたい方は以下の記事をご覧ください。

2. 準備
CSVファイルを用意します。文字コードを指定できるようにしているので、日本語をいれたファイルを用意します。
売上.csv
copy
2020/1/11,おにぎり,2,100,200
2020/1/11,サンドイッチ,5,200,1000
2020/1/11,唐揚げ弁当,3,400,1200
本記事のソースでは、CSVファイルの保存パスは以下にしています。
保存パス
“C:\Users\Public\Documents\VBA\売上.csv”3. マクロを実行する
キーボードの【F5】を押す、または画面上部の【▶】を押して、マクロを実行します。
Excelにデータが書き出されていれば完了です!
↓ VBAを勉強したい人におすすめの書籍です!