【VBA】外部ファイルの参照と読み込み
VBAで外部ファイルを読み込む処理の手順です。
記載内容
①ファイルの存在チェック
②ファイルの読み込みと転記
③CSVファイルの読み込みと転記
④外部ファイルの読み込み時のチェック
⑤外部ファイルの処理対象範囲指定
②ファイルの読み込みと転記
③CSVファイルの読み込みと転記
④外部ファイルの読み込み時のチェック
⑤外部ファイルの処理対象範囲指定
①ファイルの存在チェック
読み込もうとするファイルが存在するかを事前にチェックします。
下記のコードは、カレントディレクトリに読み込み対象のファイル(input.txt)があるかメッセージボックスで表示します。
Sub ExistCheck() If Dir(ThisWorkbook.Path & "\input.txt") <> "" Then MsgBox ("ファイルが存在します") Else MsgBox ("ファイルが存在しません") End If End Sub
②ファイルの読み込みと転記
外部ファイル input.txt を1行ずつ読み込んでセルに転記します。
Sub ReadText() Dim buf As String Dim i As Long Open ThisWorkbook.Path & "\input.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf ' 読み込んだ内容をメッセージボックスに表示する場合コメントインする ' MsgBox buf i = i + 1 Cells(i, 1) = buf Loop Close #1 End Sub
③CSVファイルの読み込みと転記
外部ファイル input.csv を読み込んで列ごとにセルに転記します。
Split で読み込んだ行の "," の位置で分割します。
タブ区切りのファイルの場合は vbTab を指定します。
Sub ReadCsv() Dim buf As String Dim i As Long ' buf をカンマ区切りで格納するための配列 Dim part Open ThisWorkbook.Path & "\input.csv" For Input As #1 i = 1 Do Until EOF(1) Line Input #1, buf part = Split(buf, ",") Cells(i, 1) = part(0) Cells(i, 2) = part(1) Cells(i, 3) = part(2) i = i + 1 Loop Close #1 End Sub
input.csvの中身
A1,B1,C1 A2,B2,C2 A3,B3,C3 A4,B4,C4 A5,B5,C5
④外部ファイルの読み込み時のチェック
読み込んだファイルの内容を行単位でチェックします。
条件に合致したらメッセージボックスで表示します。
条件は以下のとおりです。
- 文字列 hoge を含む
- 3文字目から4文字が hoge
Sub ReadTextCheck() Dim buf As String Open ThisWorkbook.Path & "\input.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf If InStr(buf, "hoge") <> 0 Then MsgBox buf End If If Mid(buf, 3, 4) = "hoge" Then MsgBox buf End If Loop Close #1 End Sub
⑤外部ファイルの特定の範囲だけ処理対象にする
対象ファイルの一部だけを処理します。
次のコードは下記 input.txtの start 行から end 行をメッセージボックスで表示します。
Sub ReadingRange() Dim buf As String Dim i As Long Dim InFlg As Boolean Open ThisWorkbook.Path & "\input.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf If InStr(buf, "start") <> 0 Then InFlg = True MsgBox ("読み込み開始") End If If InFlg = True Then i = i + 1 MsgBox (buf) End If If InStr(buf, "end") <> 0 Then InFlg = False MsgBox ("読み込み終了") End If Loop Close #1 End Sub
input.txtの中身
111 222 333 start 444 555 666 end 777 888 999
【実行結果】以下がメッセージボックスで表示されます。
読み込み開始 start 444 555 666 end 読み込み終了
参考書
リンク
最近のコメント