テキストファイルの内容を変数に読み込む
ここではテキストファイルを開きその内容全文を一つの変数に格納する方法について記載します。
テキストファイルの内容を変数に読み込むマクロ
以下のようなマクロによって指定したテキストファイルの全文を一つの変数に格納することができます。
Sub sample()
Dim inputFile As String
Dim buf_all As String
inputFile = "C:\Users\share\Desktop\folder\test.txt"
With CreateObject("Scripting.FileSystemObject")
With .GetFile(inputFile).OpenAsTextStream
buf_all = .ReadAll
.Close
End With
End With
End Sub
解説
以下は使用する変数の宣言です。
Dim inputFile As String
Dim buf_all As String
String 型の inputFile
は、読み込み対象のテキストファイルのパスを格納するための変数です。
String 型の buf_all
は、読み込んだテキストファイルの内容を格納するための変数です。
以下の行では変数 inputFile
に読み込み対象のテキストファイルのパスを格納しています。
inputFile = "C:\Users\share\Desktop\folder\test.txt"
以下の With 構文のかたまりでは、テキストファイルの内容の読み込みを行っています。
With CreateObject("Scripting.FileSystemObject")
With .GetFile(inputFile).OpenAsTextStream
buf_all = .ReadAll
.Close
End With
End With
このかたまりのうち、以下の2か所だけ状況に応じて変更してください。
①以下の文の inputFile
が変数になっています。読み込み対象のテキストファイルのパスが格納された変数をここに指定してください。
With .GetFile(inputFile).OpenAsTextStream
②以下の文の buf_all
が変数になっています。読み込むテキストファイルの内容を格納する変数をここに指定してください。
buf_all = .ReadAll
使用例
以下のマクロのように、テキストファイルを読み込んだ後、テキストファイルの内容を格納した変数の値をメッセージボックスで表示してみます。
Sub sample()
Dim inputFile As String
Dim buf_all As String
inputFile = "C:\Users\share\Desktop\folder\test.txt"
With CreateObject("Scripting.FileSystemObject")
With .GetFile(inputFile).OpenAsTextStream
buf_all = .ReadAll
.Close
End With
End With
MsgBox buf_all
End Sub
なお、読み込み対象テキストファイル test.txt の内容は以下のようになっています。
aaaaaaa
bbbbbbb
ccccccc
ddddddd
eeeeeee
上記サンプルマクロを実行した結果、以下のメッセージが表示されます。
テキストファイルと同様の内容となっていることが分かります。