概要 - メニュー バーにメニューを挿入する(VBA/ActiveX)

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