TextStreamクラスのCloseメソッド

TextStreamクラスのCloseメソッドは、FileSystemObjectクラスのCreateTextFileメソッドやOpenTextFileメソッドで開いたファイルを閉じます。

Closeメソッドを呼び出していない場合は、CreateTextFileメソッドやOpenTextFileメソッドが書いてある関数を抜けると自動的にVBA側でファイルが閉じられます。

TextStreamクラスの他のメソッドやプロパティは「FileSystemObjectとTextStreamのメソッド・プロパティ一覧」をご参照ください。

構文

Sub Close()

引数なしです。戻り値もありません。

事前設定

以下のサンプルコードでは参照設定でFileSystemObjectクラスを利用できるようにしています。

FileSystemObjectクラスを利用するには、事前にVBA画面→ツールメニュー→参照設定、を選択し、参照設定ダイアログで「Microsoft Scripting Runtime」にチェックを付けます。

詳細は「VBAでのFileSystemObjectとTextStreamの使い方」の事前設定をご参照ください。

サンプルコード

一般的なテキストファイルを参照する処理をサンプルで書いています。

テキストファイルを開いて、1行ずつ読み取り、ファイルを閉じるコードです。

Closeメソッドを書かなくてもCloseされるけど

デバッグをしていると気が付きますが、OpenTextFileメソッドなどでファイルを開いたあとにCloseせずに途中でデバッグを終了させたりすることがありますが、その際にCloseメソッドを実行していなくても、ちゃんとファイルは閉じられており、次のオープン処理は正しく行われます。

これは関数処理を抜けたら開いていたファイルをVBAで閉じてくれているおかげです。

なので、Closeメソッドがなくても次の実行時には問題がないことがほとんどです。

「ファイルを開いて読み込んで終わり」、程度の簡単なプログラムであればCloseメソッドは無くても問題ないことがほとんどでしょう。Closeメソッドが必要になるのは同じプログラムの中でオープンとクローズを何度も行うような場合ぐらいです。

しかし、だからといってCloseメソッドはいらないのかというと、そうではなく、やはり開いたものはちゃんと閉じなさい、というのがプログラミングの作法です。