セルを操作するとき、まず対象となるブックを特定するように、VBEの操作でも対象のVBProjectを意識しなければなりません。まずは、VBProjectへのアクセスを覚えましょう。
VBEで現在開いているすべてのVBProjectを取得するには、VBProjectsコレクションを操作します。次のコードは、現在開いているVBProjectの個数と、1番目のVBProjectに関する情報を表示します。なお、開いているブックが、まだ保存されていない状態だと、Filenameプロパティがエラーになりますので注意してください。
Sub Sample1()
Dim buf As String
With Application.VBE
buf = buf & .VBProjects.Count & vbCrLf
buf = buf & .VBProjects(1).Name & vbCrLf
buf = buf & .VBProjects(1).Filename & vbCrLf
buf = buf & .VBProjects(1).Protection & vbCrLf
End With
MsgBox buf
End Sub

Protectionプロパティは、VBProjectがパスワードで保護されて、VBProjectの内容が表示されていないときに1を返します。保護されていても、ユーザーがパスワードを入力して、VBProjectの内容を表示しているときは0が返ります。また、保護されていない場合も返り値は0です。Protectionプロパティは読み取り専用ですので、Protectionプロパティを使って保護の設定や解除を行うことはできません。
VBProjectオブジェクトは、ブックごとのVBProjectを表します。上記のように、VBEオブジェクトには現在開いているすべてのVBProjectオブジェクトにアクセスできます。また、ブック(Workbookオブジェクト)側から、自分のVBProjectにアクセスすることも可能です。次のコードは、アクティブブックのVBProjectに関する情報を表示します。
Sub Sample2()
Dim buf As String
With ActiveWorkbook
buf = buf & .VBProject.Name & vbCrLf
buf = buf & .VBProject.Filename & vbCrLf
buf = buf & .VBProject.Protection & vbCrLf
End With
MsgBox buf
End Sub
これは、次のようなイメージです。
