概要 - VBA でドキュメント レベルのイベントをコーディングする(VBA/ActiveX)

ドキュメント レベルのイベントは、VBA プロジェクトがロードされたときに自動的に有効化されます。

VBA でドキュメント レベルのイベントのイベント ハンドラを記述するには、単純にコード ウィンドウの[オブジェクト]ドロップダウン リストから AcadDocument を選択します。そのドキュメントで使用可能なイベントが[プロシージャ]ドロップダウン リストに表示されます。ハンドラを記述したいイベントを選択するだけで、ハンドラ スケルトンが自動的に作成されます。

この方法で作成したイベント ハンドラは、現在のアクティブな図面に適用されることに注意してください。

次の例では、BeginShortcutMenuDefault イベントのイベント ハンドラを使用して、"OpenDWG" というメニュー項目をショートカット メニューの先頭に追加します。その後 EndShortcutMenu イベントのイベント ハンドラが、追加されたメニュー項目を削除するので、変更がユーザのメニュー設定に常に保存されることにはなりません。

Private Sub AcadDocument_BeginShortcutMenuDefault _
 (ShortcutMenu As AutoCAD.IAcadPopupMenu)
    On Error Resume Next
    ' Add a menu item to the cursor menu
    Dim newMenuItem As AcadPopupMenuItem
    Dim openMacro As String
    openMacro = Chr(vbKeyEscape) + Chr(vbKeyEscape) + "_open "
    Set newMenuItem = ShortcutMenu.AddMenuItem _
 (0, Chr(Asc("&")) _
 + "OpenDWG", openMacro)
End Sub

Private Sub AcadDocument_EndShortcutMenu _
 (ShortcutMenu As AutoCAD.IAcadPopupMenu)
    On Error Resume Next
    ShortcutMenu.Item("OpenDWG").Delete
End Sub