VBA ファイルやフォルダが存在するかどうかを確認する
VBAでは、Dir関数を使用してファイルやフォルダーが存在するかどうかを確認することができます。
Dirコマンドを使ってファイルが存在するかどうかを確認する
冒頭で述べたように、Dir関数を使うと、選択したファイルがコンピュータ上に存在するかどうかを確認することができます。以下はそのコードです。
Sub CheckFileExists ()
Dim strFileName As String
Dim strFileExists As String
strFileName = "C:\Users\Nikola\Desktop\VBA articles\Test File Exists.xlsx"
strFileExists = Dir(strFileName)
If strFileExists = "" Then
MsgBox "選択されたファイルは存在しません"
Else
MsgBox "選択されたファイルは存在します"
End If
End Sub
まず、ファイルパスを変数strFileNameに代入しています。次に、Dir関数を使って、ファイル名を変数strFileExistsに代入しています。もし、そのファイルがディレクトリに存在すれば、そのファイル名がstrFileExistsという 文字列変数に代入されます。 存在しない場合は、strFileExistsは空白のままです。 最後に、ファイルが存在するかどうかを知らせるメッセージボックスを表示します。
Dirコマンドでフォルダが存在するかどうかを確認する
ファイルが存在するかどうかを確認するのと同様に、フォルダが存在するかどうかを確認することができます。この場合も、引数を1つ追加するだけです。 Dirコマンドを使用します。コードを見てみましょう。
Sub CheckFolderExists ()
Dim strFolderName As String
Dim strFolderExists As String
strFolderName = "C:\Users\Nikola\Desktop\VBA articles\Test Folder\"
strFolderExists = Dir(strFolderName, vbDirectory)
If strFolderExists = "" Then
MsgBox "選択されたフォルダは存在しません"
Else
MsgBox "選択されたフォルダは存在します"
End If
End Sub
まず、フォルダのパスを変数strFolderNameに代入しています。次に、Dir関数を使ってファイル名を変数strFileExistsに代入しています。フォルダをチェックするためには、関数の第2引数のvbDirecotryを追加する必要があります。もし、そのフォルダがディレクトリに存在すれば、その名前が変数strFolderExistsに代入されます。存在しない場合は、strFolderExistsは空白のままです。