【VBA】CSVファイルを配列に高速格納する方法
手作業でのデータ入力は時間がかかり、ミスのリスクも高まります。この記事では、CSVファイルを高速かつ効率的にExcelの配列に格納する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub CSVToArray()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' ファイルパスの指定
Dim filePath As String
filePath = "C:\path\to\yourfile.csv"
' CSVファイルを読み込み、配列に格納
Dim csvData() As Variant
csvData = ReadCSV(filePath)
' 配列の内容をワークシートに出力
ws.Cells(1, 1).Resize(UBound(csvData, 1), UBound(csvData, 2)).Value = csvData
End Sub
Function ReadCSV(ByVal filePath As String) As Variant
Dim fileNum As Integer
Dim line As String
Dim data() As String
Dim row As Long
Dim col As Long
' ファイルを開く
fileNum = FreeFile
Open filePath For Input As #fileNum
' 配列の初期化
ReDim csvData(1 To 1, 1 To 1)
row = 1: col = 1
' ファイルからデータを読み込む
Do While Not EOF(fileNum)
Line Input #fileNum, line
data = Split(line, ",")
For Each d In data
csvData(row, col) = d
col = col + 1
Next d
row = row + 1: col = 1
Loop
' 配列のサイズを調整
ReDim Preserve csvData(1 To row - 1, 1 To UBound(data) + 1)
' ファイルを閉じる
Close #fileNum
ReadCSV = csvData
End Functionよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。