Excel VBA入門 | FileSystemObject-DriveExistsメソッド(ドライブの存在確認)
公開日:2017年6月4日
FileSystemObjectオブジェクトは、Windowsスクリプトテクノロジの1つであるScriptランタイムに属したオブジェクトです(Excel VBA上ではScriptingのメンバに位置づけされています)。
ここでは、フォルダの存在を確認する方法としてFileSystemObjectオブジェクトのDriveExistsメソッドを使用する方法を解説します。
1.基本形
FSO.FolderExists(DriveName) →True/False
変数 | 説明 |
---|---|
FSO | FileSystemオブジェクト変数。FileSystemオブジェクトとして宣言して格納した変数です。 |
引数 | 説明 |
---|---|
DriveName | ドライブ名を指定します(詳細は後述)。 |
ドライブが存在すればTrueを、存在しなければFalseを返します。
2.使用例
次の例では、Cドライブが存在するかどうか確認してTrueまたはFalseをメッセージ表示します。
Sub ドライブの存在を確認する() Dim FSO As New FileSystemObject '(1) Dim buf As String 'FSOの変数名は自由に設定してください。 buf = FSO.DriveExists("C") '(2) MsgBox buf '(4) 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.DriveExists("C")
→Cドライブが存在するかどうかの結果をString型の変数bufに代入しています。
パス情報(引数DriveName)はWindows環境であれば、大文字・小文字を区別しません。「C」を「c」と書いても動作します。
また、引数DriveNameに該当する「"C"」ですが、①「"C:"」のようにコロン(:)を付した記述や、②「"C:\"」のようにコロン(:)+パスの区切り文字(\)を付した記述でも構いません。共有ネットワークの場合には例えば「\\(IPアドレス)\ネットワーク名」といった記述でも動作します。
10冊まで同時に読み放題の電子書籍サービス(200万冊以上が対象)。
PC・ITカテゴリーの対象数は7,000以上。
スキル、ノウハウ吸収や話題作りにと、ライフ・クオリティを高めてくれます。
関連記事
書籍には載っていないことにも言及してコメント
RPAとVBAの比較や今度のトレンドもコメント
VBAの人気やRPAとの需要争奪戦もコメント
実証データを基に解説
初心者からVBAプログラマーになるまでの書籍を紹介