既存のメニューをメニュー バーに挿入するには、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