Excel VBA入門 | FileSystemObject-FolderExistsメソッド(フォルダの存在確認)
公開日:2017年6月2日
FileSystemObjectオブジェクトは、Windowsスクリプトテクノロジの1つであるScriptランタイムに属したオブジェクトです(Excel VBA上ではScriptingのメンバに位置づけされています)。
ここでは、フォルダの存在を確認する方法としてFileSystemObjectオブジェクトのFolderExistsメソッドを使用する方法を解説します。
FileSystemObject-FolderExistsメソッド(フォルダの存在確認)【Excel VBA入門】
目次
1.基本形
FSO.FolderExists(FolderName) →True/False
変数 | 説明 |
---|---|
FSO | FileSystemオブジェクト変数。FileSystemオブジェクトとして宣言して格納した変数です。 |
引数 | 説明 |
---|---|
FolderName | フォルダ名。カレントフォルダ内にないファイルの存在を確認するには、絶対パスを指定します。 |
フォルダが存在すればTrueを、存在しなければFalseを返します。
2.使用例
次の例では、デスクトップ上にTestフォルダが存在するかどうか確認してTrueまたはFalseをメッセージ表示します。
Sub フォルダの存在を確認する() Dim FSO As New FileSystemObject '(1) Dim buf As String 'FSOの変数名は自由に設定してください。 buf = FSO.FolderExists("C:\Users\ユーザー名\Desktop\Test") '(2) 'ユーザー名はあなたのPC環境に合わせて書き換えてください。 MsgBox buf End Sub
【解説】
(1)Dim FSO As New FileSystemObject
→FileSystemObjectオブジェクトを使用する際のおまじないです。FileSystemObjectオブジェクト変数FSOの宣言と変数FSOにFileSystemObjectオブジェクトの参照への代入を同時に1行で行っています。
おまじないには事前バインディングと実行時バインディングがありますが、ここでは事前バインディングを使用しています。
なお、FileSystemObjextオブジェクトを使用する場合には前もって、参照設定で「Microsoft Scripting Runtime」を有効にしておきます。
※FileSystemObjectオブジェクトの設定は「Excel VBA入門 | FileSystemObjectオブジェクト(概要)」を参照ください。
(2)buf = FSO.FolderExists("C:\Users\ユーザー名\Desktop\Test")
→デスクトップ上に「Test」フォルダが存在するかどうかの結果をString型の変数bufに代入しています。
パス情報はWindows環境であれば、大文字・小文字を区別しません。「Test」を「tEST」と書いても動作します。
ファイル名はカレントフォルダであれば、ファイル名だけで済みますが、ここでは絶対パスを指定しています。
3.Dir関数を使用したプログラミングとの比較
フォルダの存在確認はDir関数を使用してもプログラム可能です。
フォルダの存在確認だけが必要であれば、Dir関数を使用したプログラミングを採用すれば事足ります。わざわざFileSystemObjectオブジェクトのおまじないなど必要としません。
しかし、フォルダの存在確認以外にもファイル操作(移動、削除、編集)やドライブ、フォルダ操作も行うプログラムを書く場合には、これら一連の操作が可能であるFileSystemObjectオブジェクトを採用した方がプログラミングしやすくなります。この場合には、フォルダの存在確認はFileExistsメソッドを使用した方がコードが見やすくなります。
10冊まで同時に読み放題の電子書籍サービス(200万冊以上が対象)。
PC・ITカテゴリーの対象数は7,000以上。
スキル、ノウハウ吸収や話題作りにと、ライフ・クオリティを高めてくれます。
関連記事
書籍には載っていないことにも言及してコメント
Excel VBAを多面的に分析してコメント
VBAは人気がある?人気がない?
他のプログラミング言語との違いや日本情勢にも言及して解説