概要 - メニューからメニュー項目を削除する(VBA/ActiveX)

メニューからメニュー項目を削除するには、メニュー項目の Delete メソッドを使用します。

注意: メニュー項目を削除する場合、同じマクロ内で同じ CUIx ファイルが直接、または間接的に再ロードされることになる別のメソッドやプロパティを呼び出さないでください。たとえば、メニュー項目を削除した後で、MenuGroup.Load メソッドまたは Preferences.Profiles.ActiveProfile プロパティを使用したり、Document.SendCommand メソッドを使用して AutoCAD の CUILOAD[CUI ロード]コマンドを発行しないでください。これらの項目は直接的、または間接的に CUIx ファイルをロードさせる原因となります。別のマクロでしか、これらのメソッドやプロパティを使用することはできません。

メニューからメニュー項目を削除する

この例では、メニュー バーに表示される最後のメニューの一番下にメニュー項目を追加します。次にそのメニュー項目を削除します。

Sub Ch6_DeleteMenuItem()
 Dim LastMenu As AcadPopupMenu
 Set LastMenu = ThisDrawing.Application.menuBar. _
 Item(ThisDrawing.Application.menuBar.count - 1)

 ' Add a menu item
 Dim newMenuItem As AcadPopupMenuItem
 Dim openMacro As String
 ' Assign the macro the VB equivalent of "ESC ESC _open "
 openMacro = Chr(3) + Chr(3) + "_open "

 Set newMenuItem = LastMenu.AddMenuItem _
 (LastMenu.count + 1, "Open", openMacro)

 ' Remove the menu item from the menu
 newMenuItem.Delete
End Sub