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が存在しない場合にはエラーとなります。したがって、実際のコード作成時には、存在チェックなどのエラーハンドリングを適切に行う必要があります。
