HasVBProjectプロパティ解説(Excel VBA)

Excel VBAにおけるHasVBProject プロパティの詳細な解説

HasVBProject プロパティは、ExcelのWorkbookに対してVBAプロジェクトが存在するか否かを示す真偽値(Boolean)を取得するためのプロパティです。値がTrueであればWorkbookにはVBAプロジェクトが存在し、Falseであれば存在しません。

使用方法

HasVBProject プロパティは、次のようにしてWorkbookオブジェクトに対して使用します。

Workbooks("SampleWorkbook.xlsx").HasVBProject

サンプルコード

以下に、HasVBProject プロパティを使った簡単なサンプルコードを示します。

Sub CheckVBProjectExistence()
    Dim wb As Workbook
    Set wb = Workbooks("SampleWorkbook.xlsx")
    
    ' ワークブックにVBAプロジェクトが存在するかチェック
    If wb.HasVBProject Then
        MsgBox "あり"
    Else
        MsgBox "なし"
    End If
End Sub

このサンプルコードでは、「CheckVBProjectExistence」サブプロシージャは、指定したWorkbook(この場合は “SampleWorkbook.xlsx”)にVBAプロジェクトが存在するか否かを判定し、その結果をメッセージボックスで表示します。

ただしこのプログラムでは実行時に”SampleWorkbook.xlsx”が開いている必要があります。開いていない場合に開かせるには以下のようにプログラムを加工します。

Sub CheckVBProjectExistence()
    Dim wb As Workbook

    On Error GoTo ErrorHandler
    Set wb = Workbooks("SampleWorkbook.xlsx")

    ' ワークブックにVBAプロジェクトが存在するかチェック
    If wb.HasVBProject Then
        MsgBox "あり"
    Else
        MsgBox "なし"
    End If

    Exit Sub

ErrorHandler:
    Set wb = Workbooks.Open("SampleWorkbook.xlsx")
    Resume Next
End Sub

注意点

このHasVBProject プロパティは、存在するWorkbookに対してのみ適用可能であり、Workbookが存在しない場合や、指定したWorkbookが存在しない場合にはエラーとなります。したがって、実際のコード作成時には、存在チェックなどのエラーハンドリングを適切に行う必要があります。