📘 Excel逆引き事典

【VBA】CSVファイルを開かずに(外部参照で)取得する方法

毎回手動でCSVファイルを開いてデータを取り込む作業は大変です。この記事では、VBAを使用してCSVファイルの内容を読み込み、Excelシートに直接反映させる方法を紹介します。

サンプルコード

VBA
Option Explicit

Sub CSVToSheet()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("データ")
    
    ' 外部ファイルのパス指定
    Dim csvFilePath As String
    csvFilePath = "C:\Users\username\Documents\data.csv"
    
    ' ファイル読み込み
    Dim fileNum As Integer, line As String, i As Long
    fileNum = FreeFile
    Open csvFilePath For Input As #fileNum
    Do While Not EOF(fileNum)
        Line Input #fileNum, line
        ws.Cells(i + 1, 1).Value = Split(line, ",")(0) ' 値をA列に格納
        ws.Cells(i + 1, 2).Value = Split(line, ",")(1) ' B列に格納
        i = i + 1
    Loop
    Close #fileNum
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。