概要 - メニュー項目にアクセラレータ キーを割り当てる(VBA/ActiveX)

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