PR
ファイルの操作

【Excel VBA】CSVファイル(1個)を読み込む

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

コメント