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 で他の一般的なタスクを実行する方法について説明します。

VBA: ワークブック内のシート数を数える方法
VBA: 複数の列を挿入する方法
VBA: 複数行を挿入する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です