@ポケじゃらし

音楽ゲームとかボーカロイドとか

ExcelVBAでテキストファイルを読み込んでみる

どうも、じゃらしです。

引き続きExcelVBAのネタです。

前回はExcelVBAでテキストファイルを作成しました。
twitpokej.hatenablog.com

今回はテキストファイルを読み込んでみます。
前回と同じく「FileSystemObject」と「TextStream」というオブジェクトを使用します。
参照設定の方法については↑の過去記事をご覧ください。

読み込み用のテキストファイルを用意しておきます。
f:id:twitpokej:20200201222747p:plain

f:id:twitpokej:20200201222806p:plain

Sub test()
  Dim fso As New FileSystemObject
  Dim ts As TextStream
  
  Dim filePath1 As String
  filePath1 = "C:\wk\test.txt"
  Set ts = fso.OpenTextFile(filePath1, ForReading)
  
  '一行ずつ読む
  With ts
    Do Until .AtEndOfStream
      MsgBox .ReadLine, Title:="test"
    Loop
    .Close
  End With
  
  Dim filePath2 As String
  filePath2 = "C:\wk\test2.txt"
  Set ts = fso.OpenTextFile(filePath2, ForReading)
  
  '全行一気に読む
  MsgBox ts.ReadAll, Title:="test2"
  ts.Close
  
End Sub

f:id:twitpokej:20200201223736p:plainf:id:twitpokej:20200201223948p:plainf:id:twitpokej:20200201224000p:plainf:id:twitpokej:20200201224013p:plain

f:id:twitpokej:20200201224033p:plain

「FileSystemObject」には、テキストファイルを開くメソッドとして「OpenTextFile」が用意されています。
ファイルを開いた後、テキストを読み込むために「TextStream」のメソッドを使用します。
今回は、以下のメソッドを使用しました。

  1. ReadLine -文字列を一行読み込む
  2. ReadAll -文字列を全行読み込む

一行ずつ読み込んで処理をさせたい場合は「ReadLine」
一気に読み込んでも問題ない場合は「ReadAll」の方が高速です。

以上、それではまた。