【VBA】フォルダを操作する

VBA
この記事は約3分で読めます。

 

フォルダを作成する

VBAではMkDirステートメントを使用してフォルダを作成できます。

MkDir ステートメント (VBA)
Office VBA リファレンス トピック

Cドライブの直下に「テストフォルダ」を作成したいときは以下のように入力します。

MkDirを使用する上で注意する点が2個あります。

・MkDirで指定したパスにフォルダが存在するときは「実行時エラー75:パス名が無効です。」と表示されます。MkDir実行前にフォルダが存在するか確認する必要があります。

・再帰的にフォルダを作成してくれません
たとえば「C:\テストフォルダ」がない状態で「C:\テストフォルダ\テストフォルダ1」を作成しようとすると
「実行時エラー76:パスが見つかりません。」と表示されます。

テストフォルダをCドライブの直下に作成した上で、その中にテストフォルダ1を作成する必要があります。

 

フォルダが存在するか確認する

VBAを使用して、指定したパスのフォルダの存在を確認してみます。

テストのため、C:\hasFolderに「folder1」という名前のフォルダを置きました。

 

Dir関数を使用する方法

VBAのDir関数は特定のパスにあるファイルやフォルダを検索するために使用します。
指定された特定のパスにファイルやフォルダが存在する場合、Dir関数はその名前を返します。
それ以外の場合は空の文字列を返します。

Dir関数を使用してフォルダの存在を確認するコードは以下になります。

HasFolderを呼び出して、C:\hasFolder内の「folder1」フォルダと「folder2」フォルダが
それぞれ存在するか動作を確認してみます。

TestHasFolderを実行してみるとfolder1は存在するので、Trueと表示されます。

folder2は存在しないのでFalseと表示されます。

FileSystemObjectのFolderExists関数を使用する方法

FileSystemObjectのFolderExists関数を使用すると指定したパスにフォルダが存在するかどうかを
判定することができます。

FileSystemObjectのFolderExists関数を使用してフォルダの存在を確認するコードは以下になります。
使用するには参照設定Microsoft Scripting Runtimeを選択しておく必要があります。

HasFolder2を呼び出して、C:\hasFolder内の「folder1」と「folder2」がそれぞれ存在するか確認してみると
Dir関数と同じ結果になります。

フォルダパスを取得する

VBAでフォルダパスを取得する
VBAでApplicationオブジェクトのFileDialogを使用することで、フォルダの選択ダイアログボックスを 取得することができます。 Application.FileDialog プロパティ (Excel) Applicati...

フォルダをエクスプローラーで開く

【VBA】Shell関数を使用してフォルダを開く
VBAではShell関数を使用することで、外部のプログラムやコマンドを実行することができます。 Shell関数からエクスプローラーを呼び出してフォルダを開くことができます。

 

コメント