VBA:FileSystemObjectのメソッドとプロパティの一覧を理解して活用する

VBA

FileSystemObjectとは

FileSystemObjectは、「scrrun.dll」というライブラリを利用し、ファイルシステムへのアクセスを提供するためのオブジェクトです。

FileSystemObjectは関数でなくオブジェクトで、VBA側で参照することで利用が可能になるライブラリです。

利用する方法としては、参照設定を行わずに利用する実行時バインディングと参照設定を行ってから利用する事前バインディングの2通りがあります。

バインディングについては、以下の記事で説明しています。

関連記事

事前バインディングと実行時バインディングの違い VBAのバインディングとは、外部のオブジェクトの機能をVBAで利用できるようにすることです。 バインディングは2通りの方法があり、実行時に利用できるようにする実行時バインディング(遅延[…]

実行時バインディング方式でFileSystemObject利用する方法

実行時バインディングという方式でFileSystemoObjectを利用する場合、CreateObject関数を使用してFileSystemoObjectオブジェクトを参照し、必要な処理を記入後、オブジェクトの参照を解除します。

事前バインディング方式でFileSystemObject利用する方法

事前バインディングは、FileSystemoObject参照するために参照設定で「Microsoft Scripting Runtime」を選択します。

参照設定で設定する方法については、以下の記事で説明しています。

関連記事

事前バインディングと実行時バインディングの違い VBAのバインディングとは、外部のオブジェクトの機能をVBAで利用できるようにすることです。 バインディングは2通りの方法があり、実行時に利用できるようにする実行時バインディング(遅延[…]

参照設定が終わったら、FileSystemoObjectオブジェクトを参照するために型宣言し、必要な処理を記入後、オブジェクトの参照を解除します。

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 ファイルまたはフォルダーの種類に関する情報を取得します。