Public Sub checkOpenBookName()
Dim wb As Workbook ' Workbookオブジェクト
Dim checkBookName As String ' チェック対象ブック名
' チェック対象のブック名を設定
checkBookName = "vba-hack.xlsm"
' 全てのブック分ループ
For Each wb In Workbooks
If wb.Name = checkBookName Then
' ブック名がチェック対象ブック名と同名である場合
MsgBox wb.Name & "が開かれています", vbExclamation
Exit For
End If
Next wb
End Sub
拡張子を含めずチェックする(新規ブックを勘案する)
サンプルコード
Public Sub checkOpenBookNameForExcludeExtension()
Dim fso As New FileSystemObject ' FileSystemObjectインスタンス
Dim wb As Workbook ' Workbookオブジェクト
Dim checkBookName As String ' チェック対象ブック名
' チェック対象のブック名を設定
checkBookName = "Book1"
' 全てのブック分ループ
For Each wb In Workbooks
If fso.getBaseName(wb.Name) = fso.getBaseName(checkBookName) Then
' ブック名がチェック対象ブック名と同名である場合
MsgBox fso.getBaseName(wb.Name) & "が開かれています", vbExclamation
Exit For
End If
Next wb
End Sub
コメント