【VBA】CSVファイルを配列を使って高速に取得する方法
日々の業務の中で、大量のデータを取り扱うことは珍しいことではありません。特にCSVファイルから大量のデータをExcelへ取り込む際は時間がかかります。そこでこの記事では、配列を使用して高速にCSVファイルを読み込む方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub CSVToArray()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
'CSVファイルのパスを指定
Dim csvPath As String
csvPath = "C:\path\to\yourfile.csv"
'CSVファイルを開く
Dim fileNum As Integer
fileNum = FreeFile
Open csvPath For Input As #fileNum
'配列の初期化
Dim data() As String
ReDim data(1 To 1, 1 To 1)
'データ読み込み
Do Until EOF(fileNum)
Line Input #fileNum, data(LBound(data) To UBound(data))
ReDim Preserve data(1 To UBound(data, 1) + 1, 1 To UBound(data, 2))
Loop
'データをシートに書き込み
ws.Range("A1").Resize(UBound(data), UBound(data, 2)).Value = data
'ファイルクローズ
Close #fileNum
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。