Home » FSO・FileSystemObjectの使い方 » フォルダーの有無をFileSystemObjectで確認する-FolderExistsメソッド

フォルダーの有無をFileSystemObjectで確認する-FolderExistsメソッド

VBA(Visual Basic for Applications)のDir関数の第2引数に、定数・vbDirectoryを指定すれば、フォルダーが存在するかどうかを調べられます。

フォルダー有無の確認をFileSystemObjectオブジェクトを使って行いたい、という要望をいただくこともあります。

このサイト・インストラクターのネタ帳のアクセスログにも、
「vba fso フォルダがあるか調べる」
「filesystemobject フォルダ有無」
といった検索キーワードが見られます。

FileSystemObject.FolderExistsメソッドでフォルダーの有無を確認できる

FileSystemObjectオブジェクトにはFolderExistsという、

フォルダーの有無をFileSystemObjectで確認する

名前どおりフォルダーの有無を調べられるメソッドがあります。

[スポンサードリンク]

CreateObject関数・オブジェクト変数を使ってフォルダーの有無を確認するサンプルマクロ

以下のような、VBAのCreateObject関数とオブジェクト変数を使ったSubプロシージャで、フォルダーの有無を確認できます。
Sub フォルダー有無を確認する_CreateObject_オブジェクト変数()
 Const FOL_PATH = "C:\temp"
 Dim fso As Object ' Scripting.FileSystemObject
 
 Set fso = CreateObject("Scripting.FileSystemObject")
 If fso.FolderExists(FOL_PATH) Then
  MsgBox FOL_PATH & " は、あります!"
 Else
  MsgBox FOL_PATH & " は、存在しません。"
 End If
 Set fso = Nothing
End Sub

定数・FOL_PATHに指定された「C:\temp」フォルダーが
存在していれば、
「C:\temp は、あります!」
存在しなければ
「C:\temp は、存在しません。」
とメッセージが表示されます。

CreateObject関数・With文を使ってフォルダーの有無を確認するサンプルマクロ

オブジェクト変数を使わずに、Withステートメントを使った以下のようなSubプロシージャでもOKです。

Sub フォルダー有無を確認する_CreateObject_Withステートメント()
 Const FOL_PATH = "C:\temp"

 With CreateObject("Scripting.FileSystemObject")
  If .FolderExists(FOL_PATH) Then
   MsgBox FOL_PATH & " は、あります!"
  Else
   MsgBox FOL_PATH & " は、存在しません。"
  End If
 End With
End Sub

参照設定済の環境でオブジェクト変数を使ってフォルダーの有無を確認するサンプルマクロ

Scripting.FileSystemObjectへの参照設定が行われている環境なら、以下のようなSubプロシージャでもOKです。

Sub フォルダー有無を確認する_参照設定済_オブジェクト変数()
 Const FOL_PATH = "C:\temp"
 Dim fso As Scripting.FileSystemObject

 Set fso = New Scripting.FileSystemObject
 If fso.FolderExists(FOL_PATH) Then
  MsgBox FOL_PATH & " は、あります!"
 Else
  MsgBox FOL_PATH & " は、存在しません。"
 End If
 Set fso = Nothing
End Sub

参照設定済の環境でWithステートメントを使ってフォルダーの有無を確認するサンプルマクロ

Scripting.FileSystemObjectへの参照設定が行われていて、オブジェクト変数ではなくWithステートメントを使うなら以下のようなSubプロシージャです。
Sub フォルダー有無を確認する_参照設定済_Withステートメント()
 Const FOL_PATH = "C:\temp"
 
 With New Scripting.FileSystemObject
  If .FolderExists(FOL_PATH) Then
   MsgBox FOL_PATH & " は、あります!"
  Else
   MsgBox FOL_PATH & " は、存在しません。"
  End If
 End With
End Sub

[スポンサードリンク]

Home » FSO・FileSystemObjectの使い方 » フォルダーの有無をFileSystemObjectで確認する-FolderExistsメソッド

「FSO・FileSystemObjectの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.