なんだかGoodVibes

日々の勉強メモです。

【VBA】ファイルの読み込み

こんにちは。
本日はVBAのサンプルです。

概要

ファイルを読み込み、エクセルに表示したい。
よく忘れるのでメモ。


サンプル

CSVファイルの内容をエクセルに表示します。

読み込みに使用するのはLine Input #ファイル番号, 変数名

filenumberには、任意のファイル番号を指定し、
varnameには、変数名を指定します。
ファイルの最終行かどうかは、EOF(filenumber)を使用して判定しています。
EOFは、ファイルの終点の場合にTrueを返します。

今回は、CSVファイルなのでカンマ区切りを想定した処理となっていますが、
区切り文字の指定を調整することで様々なファイル形式を読み込むことが可能です。

Sub ReadFile()
    Dim sheetName As String: sheetName = "出力シート"
    Dim fileName As String: fileName = "C:hoge.csv"
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets(sheetName)
    
    Dim outputIdx As Long: outputIdx = 1
    Dim count As Long: count = 1
    
    On Error GoTo ErrorProcess
    Dim textline  As String
    Open fileName For Input As #1
        Do Until EOF(1)
            Line Input #1, textline

            ' カンマ単位でデータを取得
            Dim arr As Variant: arr = Split(textline, ",")
            
            Dim i As Integer
            For i = 0 To UBound(arr)
                ws.Cells(outputIdx, i + 1).Value = arr(i)
            Next i
            
            outputIdx = outputIdx + 1
        Loop
    Close #1
    
    MsgBox "完了しました。"
    Exit Sub
    
ErrorProcess:
    Close #1
    MsgBox "失敗しました。"
End Sub



以上です。