※本ブログのページには広告主との提携による広告や宣伝、プロモーションが含まれます。当ブログを経由しての商品の購入や、サービス申し込みが発生すると、それらの提携企業からの成果報酬を受けとる場合があります。

VBA|OpenTextFileメソッド(ファイルシステムオブジェクト)

FileSystemObjectOpenTextFileメソッドは指定されたファイルを開き、TextStreamオブジェクトを返します。TextStreamオブジェクトはファイルを読み取る、書きこむ、追記が可能なオブジェクトです。

※ファイルシステムオブジェクト(FileSystemObject)についてはこちら

OpenTextFileメソッドの構文

ファイルシステムオブジェクト.OpenTextFile(ファイルの名前(Filename),読み書きモード(Iomode),ファイルの作成(Create),ファイルの形式(Format))

OpenTextFileメソッドの構成要素と引数

         
要素/引数 必須/任意 説明
ファイルシステムオブジェクト
(FSO)
必須 ファイルシステムオブジェクトを指定します。
ファイルの名前
(Filename)
必須 開きたいファイルのパスを指定します。
読み書きモード
(Iomode)
任意 読み取り、書き込み、追記モードのいずれかを以下の値または定数で指定します。
[値:定数]
1:ForReading
2:ForWriting
8:ForAppending
※初期値は「ForReading」です。
ファイルの作成
(Create)
任意 ファイルの名前(Filename)で指定したファイルが存在しない場合に新しいファイルを作成するかを真偽値で指定します。
True:新しいファイルを作成する
False:作成しない
※初期値は「False」です。
ファイルの形式
(Format)
任意 ファイルの開きかたを以下の値または定数で指定します。
[値:定数]
-2:TristateUseDefault
-1:TristateTrue
0:TristateFalse
※初期値は「TristateFalse」です。
     
定数 説明
ForReading 1 読み取り専用モードでファイルを開きます。
※書きこみはできません。
ForWriting 2 書きこみ専用モードでファイルを開きます。
既存ファイルを新しい内容に書きかえる場合はこちらのモードを指定します。
※読み取りはできません。
ForAppending 8 追記モードでファイルを開きます。
既存ファイルの末尾に追記する場合はこちらのモードを指定します。
※読み取りはできません。
※省略した場合は初期値である読み取り専用モードになります。
     
定数 説明
TristateUseDefault -2 システムで設定されている値に従ってファイルを開きます。
TristateTrue -1 Unicode形式でファイルを開きます。
TristateFalse 0 Ascii形式でファイルを開きます。
※省略した場合は初期値でAscii形式でファイルを開きます。

読み書きモード(Iomode)では読み取りか書きこみかに限定されることに注意が必要だよ。

OpenTextFileメソッドをつかったサンプルマクロ

  
Option Explicit

Sub ファイルシステムオブジェクト_OpenTextFileメソッド()

    'ファイルシステムオブジェクトを使うため準備
    '①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
    Dim FSO As FileSystemObject
    Set FSO = New FileSystemObject

    'TextStreamオブジェクトを代入する変数を宣言
    Dim TStreamW  As Object

    'OpenTextFileメソッドの使用例(変数にTextStreamオブジェクトを代入する)
    Set TStreamW = FSO.OpenTextFile("C:\Users\ユーザー名\Desktop\Test\TStream.txt", 2, True, -2)

    'TextStreamオブジェクトのWriteメソッドを利用する
    TStreamW.Write "これはTextStreamのWriteメソッドで書きこみました。"

End Sub

11行目

TextStreamオブジェクトを代入するための変数TStreamWを宣言しています。

14行目

OpenTextFileメソッドを利用して変数TStreamWにTextStreamオブジェクトを代入します。ここでは、読み書きモード(Iomode)とファイルの形式(Format)は値で指定しています。

17行目

TextStreamオブジェクトのWriteメソッドでテキストファイルに指定した文字列を書きこみます。

  
Option Explicit

Sub ファイルシステムオブジェクト_OpenTextFileメソッド2()

    'ファイルシステムオブジェクトを使うため準備
    '①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
    Dim FSO As FileSystemObject
    Set FSO = New FileSystemObject

    'TextStreamオブジェクトを代入する変数を宣言(書きこみ用)
    Dim TStreamR  As Object

    'OpenTextFileメソッドの使用例(変数にTextStreamオブジェクトを代入する)
    Set TStreamR = FSO.OpenTextFile("C:\Users\ユーザー名\Desktop\Test\TStream.txt", ForReading, False, TristateUseDefault)

    'TextStreamオブジェクトのReadAllメソッドを利用する
    Debug.Print TStreamR.ReadAll

End Sub

11行目

TextStreamオブジェクトを代入するための変数TStreamRを宣言しています。

14行目

OpenTextFileメソッドを利用して変数TStreamRにTextStreamオブジェクトを代入します。ここでは、OpenTextFileメソッドの読み書きモード(Iomode)とファイルの形式(Format)は定数で指定しています。

17行目

TextStreamオブジェクトのReadAllメソッドでテキストファイルに指定したファイル全体を読み取り、文字列を返します。

上記の文字列がイミディエイトウィンドウに表示されます。

テキストの読み取り、書きこみ、追記ができるオブジェクトを取得するメソッドだね。

PR

独学でプログラミングをはじめてみたけど、このままの学習方法に不安を感じているのなら、
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験

コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。

コメント

タイトルとURLをコピーしました