【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.
シート名や列番号が正しいか確認してください。