FileSystemObjectとは
FileSystemObjectは、「scrrun.dll」というライブラリを利用し、ファイルシステムへのアクセスを提供するためのオブジェクトです。
FileSystemObjectは関数でなくオブジェクトで、VBA側で参照することで利用が可能になるライブラリです。
利用する方法としては、参照設定を行わずに利用する実行時バインディングと参照設定を行ってから利用する事前バインディングの2通りがあります。
バインディングについては、以下の記事で説明しています。
事前バインディングと実行時バインディングの違い VBAのバインディングとは、外部のオブジェクトの機能をVBAで利用できるようにすることです。 バインディングは2通りの方法があり、実行時に利用できるようにする実行時バインディング(遅延[…]
実行時バインディング方式でFileSystemObject利用する方法
実行時バインディングという方式でFileSystemoObjectを利用する場合、CreateObject関数を使用してFileSystemoObjectオブジェクトを参照し、必要な処理を記入後、オブジェクトの参照を解除します。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Dim fso As Object ' FileSystemoObjectを参照する Set fso = CreateObject("Scripting.FileSystemObject") ' 処理を書く : : ' オブジェクトを解放する Set fso = Nothing |
事前バインディング方式でFileSystemObject利用する方法
事前バインディングは、FileSystemoObject参照するために参照設定で「Microsoft Scripting Runtime」を選択します。
参照設定で設定する方法については、以下の記事で説明しています。
事前バインディングと実行時バインディングの違い VBAのバインディングとは、外部のオブジェクトの機能をVBAで利用できるようにすることです。 バインディングは2通りの方法があり、実行時に利用できるようにする実行時バインディング(遅延[…]
参照設定が終わったら、FileSystemoObjectオブジェクトを参照するために型宣言し、必要な処理を記入後、オブジェクトの参照を解除します。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Dim fso As FileSystemObject ' オブジェクトを参照するため型宣言する Set fso = New FileSystemObject ' 処理を書く : : ' オブジェクトの参照を解除する Set fso = Nothing |
FileSystemoObjectのメソッド・プロパティ
FileSystemObjectのメソッドとプロパティは以下の通りです。
一緒にFileSystemObjectを使いこなしていきましょう。
少しづつサンプルを公開していきます。
メソッド一覧
| メソッド | 説明 | VBA関数 |
|---|---|---|
| BuildPath | 既存のパスに名前を追加します。 | |
| CopyFile | 1 つ以上のファイルをコピーします。 | |
| CopyFolder | 1 つ以上のフォルダーをコピーします。 | |
| CreateFolder | フォルダーを新規に作成します。 | |
| CreateTextFile | 開いたファイルの読み取りまたは書き込みが出来るようにします。 | |
| DeleteFile | ファイルを削除します。 | |
| DeleteFolder | フォルダーを削除します。 | |
| DriveExists | ドライブが存在するかどうかをチェックします。 | |
| FileExists | ファイルが存在するかどうかをチェックします。 | |
| FolderExists | フォルダーが存在するかどうかをチェックします。 | |
| GetAbsolutePathName | ドライブのルートからの完全なパスを返します。 | |
| GetBaseName | ファイルまたはフォルダーの拡張子を除くベース名の文字列を返します。 | |
| GetDrive | ドライブの情報を取得します。 | |
| GetDriveName | ドライブの状況を取得します。 | |
| GetExtensionName | ファイル拡張子名を返します。 | |
| GetFile | ファイルの情報を返します。 | |
| GetFileName | ファイル名またはフォルダー名を返します。 | |
| GetFolder | フォルダーを取得します。 | |
| GetParentFolderName | 親フォルダーの名前を取得します。 | |
| GetSpecialFolder | 特殊フォルダーのパスを取得します。 | |
| GetTempName | ランダムに生成された一時ファイルまたはフォルダーを取得します。 | |
| Move | ファイルまたはフォルダーを別の場所に移動します。 | |
| MoveFile | ファイルを別の場所に移動します。 | |
| MoveFolder | フォルダーを別の場所に移動します。 | |
| OpenAsTextStream | 開いたファイルの読み取り・書き込み・追加書き込みが出来るようにします。 | |
| OpenTextFile | 開いたファイルの読み取り・書き込み・追加書き込みが出来るようにします。 | |
| WriteLine | 開いたファイルに指定した文字列と改行文字を書き込みます。 |
プロパティ一覧
| プロパティ | 説明 | VBA関数 |
|---|---|---|
| Drives | コンピューター上すべての Drivesのコレクションを返します。 | |
| Name | 指定したファイルまたはフォルダーの名前を設定または取得します。 | |
| Path | 指定したファイル・フォルダー・またはドライブのパスを取得します。 | |
| Size | ファイルの場合は、バイト単位でのサイズを取得します。フォルダーの場合は、すべてのファイルとサブフォルダーのサイズをバイト単位で取得します。 | |
| Type | ファイルまたはフォルダーの種類に関する情報を取得します。 |