Vba: ワークブックが開いているかどうかを確認します (例付き)
VBA で次の構文を使用すると、特定のブックが現在開いているかどうかを確認できます。
SubCheckWorkbookOpen ()
Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing
If resultCheck Then
MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
End Sub
このマクロを実行すると、ユーザーが Excel ワークブックの名前を入力できる入力ボックスが表示され、マクロは次のいずれかの結果を示すメッセージ ボックスを生成します。
- 「ファイルは開いています」
- 「ファイルが開いていません」
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用してワークブックが開いているかどうかを確認する方法
現在、次の名前の 2 つのワークブックを開いているとします。
- my_workbook1.xlsx
- my_workbook2.xlsx
my_workbook1.xlsxというワークブックが現在開いているかどうかを確認したいとします。
これを行うには、次のマクロを作成できます。
SubCheckWorkbookOpen ()
Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing
If resultCheck Then
MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
End Sub
このマクロを実行すると、入力ボックスにmy_workbook1.xlsxと入力できるボックスが表示されます。
[OK]をクリックすると、マクロによって次のメッセージ ボックスが表示されます。
マクロは「ワークブックが開いています」と正しく表示し、その名前のワークブックが現在開いていることを示します。
ここで、現在開いていないワークブックの名前を入力したとします。
[OK]をクリックすると、マクロによって次のメッセージ ボックスが表示されます。
マクロは、その名前のワークブックが現在開いていないことを示す「ワークブックが開いていません」と正しく表示します。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。