【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ファイルの形式や内容に問題がないかチェックしてください。