既存のメニューをメニュー バーに挿入するには、InsertMenuInMenuBar メソッドまたは InsertInMenuBar メソッドを使用します。どちらのメソッドも、既存のメニューをメニュー バーに挿入するという同じ目的を達成します。
この 2 つのメソッドの違いは、メソッドを呼び出すオブジェクトが異なる点です。InsertMenuInMenuBar メソッドは PopupMenus コレクションから呼び出されます。このメソッドを使用すると、コレクションから得られるどのメニューも、メニュー バーの指定位置に挿入することができます。このメソッドには入力として、挿入するメニューの名前とメニュー バー上の挿入位置を指定する必要があります。
InsertInMenuBar メソッドは、挿入する PopupMenu オブジェクトから直接呼び出されます。このメソッドに必要な入力は、メニュー バー上の挿入位置だけです。挿入するオブジェクトから直接メソッドを呼び出しているので、メニューの名前を指定する必要はありません。
アプリケーションにとって都合の良いほうのメソッドを使用してください。
以下の例は、TestMenu という名前で新しいメニューを作成し、そこにメニュー項目を挿入します。メニュー項目には、OPEN[開く]コマンドが割り当てられます。操作後、このメニューはメニュー バーに表示されるようになります。
Sub Ch6_InsertMenu()
' Define a variable for the current menu group
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application. _
MenuGroups.Item(0)
' Create a new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("TestMenu")
' Declare the variables for the menu item
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro string the VB equivalent of
' "ESC ESC _open " and create the menu item
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"Open", openMacro)
' Display the menu on the menu bar
currMenuGroup.Menus.InsertMenuInMenuBar "TestMenu", ""
End Sub