csvファイルに格納されているデータをエクセルに貼り付けるマクロです。
今回は1つのcsvファイルのデータを取り込み、エクセルに出力する方法を紹介します。
拡張性を考慮して、1行目が列名で2行目以降にデータが格納されているcsvファイルの取り扱いを例として取り上げます。
下の図のようなcsvファイルのデータを取り込み、マクロを実行したエクセルファイルのA1セル始点で取り込んだデータを出力します。
Sub csvファイルデータ書き出し_1行目が列名の場合()
Dim fso As Object
Dim filePath As String
Dim file As Object
Dim retsumei() As String
Dim data As Variant
Dim line As String
Dim i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
'データを取得するcsvファイルの格納先リンクを指定する
filePath = "C:\test\test.csv"
Set file = fso.OpenTextFile(filePath)
' 列名を取得する(1行目が列名の場合)
retsumei = Split(file.ReadLine, ",")
'1行目(A1セル始点)に列名を出力する
For j = LBound(retsumei) To UBound(retsumei)
Cells(1, j + 1).Value = retsumei(j)
Next j
' データを読み込んでExcelシート(2行目以降)に出力する
i = 1
Do Until file.AtEndOfStream 'csvファイルの2行目~最終行目まで繰り返し
line = file.ReadLine
data = Split(line, ",")
For j = LBound(data) To UBound(data)
Cells(i + 1, j + 1).Value = data(j)
Next j
i = i + 1
Loop
'csvファイルを閉じる
file.Close
End Sub
コメント