VBAプロジェクトの有無を確認する(VBProjectを参照する場合)
VBProjectへのアクセスを試し、VBAプロジェクトの有無を表示します。
実行前に確認
- プロジェクトがあることと実行可能なマクロがあることは同じではありません。この例自身にもVBAがあります。信頼設定を安易に緩めず、通常の有無確認にはHasVBProjectを使います。
1サンプルコード
Sub Sample3008()
On Error GoTo Blocked
If ThisWorkbook.HasVBProject Then
Dim project As Object
Set project = ThisWorkbook.VBProject
MsgBox "VBAプロジェクトがあります。コンポーネント数: " & project.VBComponents.Count
Else
MsgBox "VBAプロジェクトはありません。"
End If
Exit Sub
Blocked:
MsgBox "VBProjectの参照が許可されていないか、プロジェクトが保護されています。"
End Sub図で見る操作の流れ
イメージ図コードに沿った概念図です。実際の画面や実行結果ではありません。
マクロ:有無を判定
このブックのHasVBProjectを確認
マクロ:参照を試す
プロジェクトがあればVBProjectにアクセス
マクロ:結果を表示
参照できた場合はVBAプロジェクトとコンポーネント数を表示
プロジェクトなしならその旨を表示。参照不可・保護などのエラーは案内します。信頼設定を安易に緩めないでください。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
- 1
練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]にコードを貼り付けます。
- 3
Sample3008内にカーソルを置いてF5で実行します。VBProjectへのアクセスを試し、VBAプロジェクトの有無を表示します。