OpenTextFileメソッドは指定されたファイルを開き、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」です。 |
読み書きモード(Iomode)の設定値
定数 | 値 | 説明 |
---|---|---|
ForReading | 1 | 読み取り専用モードでファイルを開きます。 ※書きこみはできません。 |
ForWriting | 2 | 書きこみ専用モードでファイルを開きます。 既存ファイルを新しい内容に書きかえる場合はこちらのモードを指定します。 ※読み取りはできません。 |
ForAppending | 8 | 追記モードでファイルを開きます。 既存ファイルの末尾に追記する場合はこちらのモードを指定します。 ※読み取りはできません。 |
ファイルの形式(Format)の設定値
定数 | 値 | 説明 |
---|---|---|
TristateUseDefault | -2 | システムで設定されている値に従ってファイルを開きます。 |
TristateTrue | -1 | Unicode形式でファイルを開きます。 |
TristateFalse | 0 | 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
OpenTextFileメソッドの読み書きモード(Iomode)とファイルの形式(Format)は値で指定しています。
実行結果
①ファイルの作成と文字列入力
C:\Users\ユーザー名\DesktopのTestフォルダの中に「TStream.txt」ファイルが作成され、「これは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
OpenTextFileメソッドの読み書きモード(Iomode)とファイルの形式(Format)は定数で指定しています。
実行結果
②①で作成したファイルの読み取り
TextStreamのWriteメソッドで書きこみました。
上記の文字列がイミディエイトウィンドウに表示されます。
テキストの読み取り、書きこみ、追記ができるオブジェクトを取得するメソッドだね。
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント