ファイルシステムオブジェクト
ファイルシステムオブジェクト(FileSystemObject)は、ファイルやフォルダー、ドライブを操作するためのオブジェクトです。
ファイルをコピーするFileCopyステートメントやファイルの存在を確認するDir関数などと比べて、わかりやすいコードを記述できるメリットがあります。
Microsoft Scripting Runtime【マイクロソフト スクリプティング ランタイム】の参照
ファイルシステムオブジェクトをVBAで使用するには、Microsoft Scripting Runtime【マイクロソフト スクリプティング ランタイム】への参照を設定します。この参照設定はファイルシステムオブジェクトを使用するブックごとに設定する必要があります。
Microsoft Scripting Runtime【マイクロソフト スクリプティング ランタイム】は、ファイルシステムオブジェクトを構成するオブジェクトが定義されている外部ライブラリファイルです。
参照設定を行うことにより、ライブラリファイルで定義されている、外部オブジェクトを効率的に使用できるようになります。外部オブジェクトに関するステートメントのチェックがプログラム実行前に実施されるため、参照設定を行わずに外部オブジェクトを参照する場合と比べてマクロの実行速度が速くなります。さらに、外部オブジェクトについても自動メンバー表示や自動クイックヒント表示などのプログラミングを支援する機能が使用できるようになるため
効率的にコードの記述ができます。
Microsoft Scripting Runtimeの参照設定の方法
※しつこいようですが、「Microsoft Scripting Runtime」への参照設定は
「ファイルシステムオブジェクト」を使用するブックごとに設定する必要があります。
参照設定を行わずに「ファイルシステムオブジェクト」(FSO)を使用する方法
参照設定を行わずにFSOを使用するにはCreateObject【クリエートオブジェクト】関数を使用して以下のようにFSOオブジェクトのインスタンスを生成します。
Dim myFSO As Object Set myFSO CreateObject("Scripting.FileSystemObject")
ブックごとの参照設定を行う必要がないためプロシージャーを手軽に作成できるメリットがある一方外部オブジェクトに関するステートメントのチェックがプログラムの実行時に行われるため、参照設定を使用するときに比べてマクロの実行速度が遅くなります。また、外部オブジェクトについての自動メンバー表示やクイックヒントなどのプログラミング支援機能が働かないため作業効率が下がるデメリットがあります。
ファイルシステムオブジェクトの構成図
ファイルやフォルダーの基本操作(作成やコピーなど)を実行するには、FSOの最上位オブジェクトの「FileSystemObject」を使用します。「FileSystemObject」を使用するには、そのインスタンス(オブジェクトの複製)を作成してオブジェクト変数に格納しプロパティやメソッドで操作します。
FileSystemObjectオブジェクトの下位オブジェクトのプロパティやメソッドを使用するとさらに詳細な操作をフォルダーやファイルに対して実行することができます。
FileSystemObject【ファイルシステムオブジェクト】のインスタンスを生成する書式と設定値の説明
Dim オブジェクト変数 As New FileSystemObject
- オブジェクト変数
任意の変数名を指定します。 - New FileSystemObject
Newキーワードを使用してFileSystemObjectの
インスタンス(複製)を自動生成します。
※「Microsoft Scripting Runtime」への参照設定が実行されている必要があります。
ファイルシステムオブジェクトのメソッド・プロパティ
ドライブの操作や取得をするFSOのメソッドやプロパティ
ファイルの操作や取得をするFSOのメソッドやプロパティ
以上で、ファイルシステムオブジェクトについての解説を終了します。
ありがとうございます。