既存のメニューにサブメニューを追加します。
サポートされているプラットフォーム: Windows のみ
VBA:
RetVal = object.AddSubMenu(Index, Label)
タイプ: PopupMenu
このメソッドが適用されるオブジェクト。
アクセス: 入力のみ
タイプ: バリアント型
頂点を追加するメニューのインデックス位置
整数を使用して、メニュー内の与えられた位置を指定する場合、インデックスは 0 から N-1 までとします。N はポップアップ メニュー内のオブジェクトの数です。 この項目は、指定されたインデックス位置の直前に追加されます。メニューの最後に新しいメニュー項目を加えるには、インデックスを N より大きく設定します。
文字列が指定され、インデックスされた項目が存在しない場合、新しいメニュー項目はメニューの最後に追加されます。
アクセス: 入力のみ
タイプ: 文字列
メニュー項目のラベル。ラベルは DIESEL 文字列式を含むことがあります。ラベルは、アクセラレータ文字の前にアンパサンド(&)を付けることにより、メニュー項目に該当するアクセラレータ キー(キーボードのキー シーケンス)もまた識別します。
このメソッドは新しい PopupMenuItem オブジェクトを作成し、指定されたメニューに追加します。この特殊な PopupMenuItem オブジェクトにはタイプ acSubmenu が割り当てられます。
次のメニューの例では、[寸法値の位置合わせ]メニュー項目は、[寸法]メニューの 17 番目のインデックスに挿入されています。[寸法値の位置合わせ]メニュー項目は acSubmenu タイプです。例にあるその他のメニュー項目はすべて、acMenuItem タイプまたは acMenuSeparator タイプです。[寸法値の位置合わせ]メニューが選択された場合に現れる小さなカスケード メニューは、AddSubMenu メソッドが返す新しいメニューです。このメニューには、AddMenuItem および AddSeparator メソッドを使用して項目が追加されています。

VBA:
Sub Example_AddSubMenu()
' This example creates a new menu called TestMenu and inserts a submenu item
' called NewFile. It then creates a menu item, called open,
' on the submenu.
' The menu is then displayed on the menu bar.
' To remove the menu after execution of this macro, use the Customize Menu
' option from the Tools menu.
Dim currMenuGroup As acadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("TestMenu")
' Add the submenu
Dim FileSubMenu As AcadPopupMenu
Set FileSubMenu = newMenu.AddSubMenu("", "NewFile")
' Add a menu item to the sub menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro string the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) & Chr(3) & Chr(95) & "open" & Chr(32)
Set newMenuItem = FileSubMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar ThisDrawing.Application.MenuBar.count + 1
End Sub
Visual LISP:
(vl-load-com)
(defun c:Example_AddSubMenu()
;; This example creates a new menu called TestMenu and inserts a submenu item
;; called NewFile. It then creates a menu item, called open,
;; on the submenu.
;; The menu is then displayed on the menu bar.
;; To remove the menu after execution of this macro, use the Customize Menu
;; option from the Tools menu.
(setq acadObj (vlax-get-acad-object))
(setq currMenuGroup (vla-Item (vla-get-MenuGroups acadObj) 0))
;; Create the new menu
(setq newMenu (vla-Add (vla-get-Menus currMenuGroup) "TestMenu"))
;; Add the submenu
(setq FileSubMenu (vla-AddSubMenu newMenu "" "NewFile"))
;; Assign the macro string the VB equivalent of "ESC ESC _open "
(setq openMacro (strcat (Chr 3) (Chr 3) (Chr 95) "open" (Chr 32)))
(setq newMenuItem (vla-AddMenuItem FileSubMenu (1+ (vla-get-Count newMenu)) "Open" openMacro))
;; Display the menu on the menu bar
(vla-InsertInMenuBar newMenu (1+ (vla-get-Count (vla-get-MenuBar acadObj))))
;; Display the menu bar
(vla-SetVariable doc "MENUBAR" 1)
)