📘 Excel逆引き事典

【VBA】CSVファイルを安全に配列に格納する方法

手作業でCSVファイルからデータを取り込むのは時間がかかり、ミスのリスクも高まります。この記事では、エラー処理付きのVBAコードを使用して、CSVファイルを配列に効率的に取り込み、業務を迅速化します。

サンプルコード

VBA
Option Explicit
Sub CSVToArray()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim csvFilePath As String
    csvFilePath = "C:\path\to\yourfile.csv"
    
    'エラー処理の開始
    On Error GoTo ErrorHandler
    
    'CSVファイルを配列に読み込む
    Dim arr() As Variant
    arr = Split(FileToString(csvFilePath, vbCrLf), vbCrLf)
    
    'データをシートに書き込み
    ws.Cells(1, 1).Resize(UBound(arr) + 1, 1).Value = Application.Transpose(arr)
    
    MsgBox "CSVファイルの読み込みが完了しました。", vbInformation
    Exit Sub
ErrorHandler:
    MsgBox Err.Description & vbCrLf & "エラーが発生したため処理を終了します。", vbCritical
End Sub

'CSVファイルの内容を文字列として取得する関数
Function FileToString(filePath As String, delimiter As String) As String
    Dim fileNum As Integer
    Dim buffer As String
    
    'ファイルを開く
    fileNum = FreeFile
    Open filePath For Binary Access Read As #fileNum
    buffer = Space$(LOF(fileNum))
    Get #fileNum, , buffer
    Close #fileNum
    
    FileToString = Split(buffer, delimiter)(0)
End Function

よくある質問

Q 元に戻せますか?

A.
VBAマクロは通常、実行結果を元に戻す機能はありません。必ずバックアップを作成してから実行してください。

Q エラーが出たら?

A.
ファイルパスが正しいことを確認し、CSVファイルの形式や内容に問題がないかチェックしてください。