【Excel VBA】テキストファイルの内容を変数に読み込むマクロ(全文一括)

目次

テキストファイルの内容を変数に読み込む

ここではテキストファイルを開きその内容全文を一つの変数に格納する方法について記載します。

テキストファイルの内容を変数に読み込むマクロ

以下のようなマクロによって指定したテキストファイルの全文を一つの変数に格納することができます。

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

上記サンプルマクロを実行した結果、以下のメッセージが表示されます。

テキストファイルと同様の内容となっていることが分かります。


あわせて読みたい
【Excel VBA】テキストファイルの内容を一行ずつ読み込むマクロ 【テキストファイルの内容を1行ずつ読み込むマクロテンプレート】 Sub sample() Dim inputFile As String Dim readLine As String inputFile = "<ファイルパス>" ...
あわせて読みたい
【Excel VBA】ファイルに1行ずつ文字列を出力する方法 【ファイルに1行ずつ文字列を出力するマクロテンプレート】 上書き型出力の場合 Sub sample() Dim outputFile As String outputFile = "<出力先ファイルパス>" Op...
あわせて読みたい
Excel VBA マクロ作成用情報まとめ 【初学者向け情報】 【Excel VBA】初心者からマクロを作成できるようになるまでの学習ロードマップ 【Excel VBA マクロ独学者・初心者向け】VBA 学習の第一歩【このペー...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

とあるエンジニアです。

当ブログでは Excel VBA のマクロ作成に役立つ情報を中心に情報展開しています。

Excel VBA マクロを使いこなして時短し、人生の質『QOL』を高めていきましょう。

プロフ画像:Copyright (C) SQUARE ENIX CO., LTD. All Rights Reserved.

目次