AutoCAD ActiveX/VBA からメニュー項目にアクセラレータ キーを割り当てるには、そのメニュー項目の Label プロパティを使用します。
アクセラレータ キーを指定するには、ラベルの中でアクセラレータとして使用する文字の直前に ASCII コードでアンパサンド(&)を入れます。たとえば、ラベル Chr(Asc("&")) + "Edit" は "Edit" と表示され、文字 "E" がアクセラレータ キーとして使用されることを表します。
次の例では、"TestMenu" メニューと "Open" メニューの両方にアクセラレータ キーを追加します。"s" は "TestMenu" メニューのアクセラレータ キーとして使用され、"O" は "Open" メニューのアクセラレータ キーとして使用されます。
Sub Ch6_AddAMenuItem() Dim currMenuGroup As AcadMenuGroup Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) ' Create the new menu Dim newMenu As AcadPopupMenu Set newMenu = currMenuGroup.Menus.Add _ ("Te" + Chr(Asc("&")) + "stMenu") ' Add a menu item to the new menu Dim newMenuItem As AcadPopupMenuItem Dim openMacro As String ' Assign the macro the VBA equivalent of "ESC ESC _open " openMacro = Chr(3) + Chr(3) + "_open " Set newMenuItem = newMenu.AddMenuItem _ (newMenu.count + 1, Chr(Asc("&")) _ + "Open", openMacro) ' Display the menu on the menu bar newMenu.InsertInMenuBar _ (ThisDrawing.Application.menuBar.count + 1) End Sub