VBA 任意のフォルダ内のファイル存在チェック(Excelファイル編)
■VBAで任意のフォルダ内のファイル存在をチェックする方法(Excelファイル編)
Sub Serch()
//フォルダパスの変数を宣言
Dim folderPath As String
//Excelファイルを格納しているフォルダのフォルダパスを設定
folderPath = "C:\Users\HOGEHOGE\Desktop\TARGET_FOLDER"
//フォルダが存在するかを確認
If Dir(folderPath, vbDirectory) = "" Then
//フォルダが存在しない場合はメッセージを表示して処理を終了
MsgBox "指定のフォルダが存在しない為、処理を終了します"
End
End If
//ファイル名の変数を宣言
Dim fileName As String
//ファイル名を設定
fileName = Dir(folderPath & "\*.xlsx")
//フォルダ内にExcelファイル(拡張子:xlsx)が存在するかを確認
If fileName = "" Then
//ファイルが存在しない場合はメッセージを表示して処理を終了
MsgBox "Excelファイルが存在しない為、処理を終了します"
End If
//フォルダ内のExcelファイル(拡張子:xlsx)が開いているかを確認
Dim openFile As Workbook
//開いているファイルを「Workbooks」コレクションで取得し、openFileに1つずつセット
For Each openFile In Workbooks
//フォルダ内のファイルを取得
Do While fileName <> ""
//開いているファイルがフォルダ内のファイルの場合はメッセージを表示して処理を終了
If openFile.Name = fileName Then
MsgBox fileName & "が開いています" & vbCrLf _
& "ファイルを閉じてから再度、マクロを実行してください"
End
End If
//フォルダ内の次のファイルを取得
fileName = Dir()
Loop
//ループが終わると「fileName」が空になるので、再度Dir関数でフォルダ内のファイルを取得
fileName = Dir(folderPath & "\*.xlsx")
Next
End Sub