カスケード サブメニューを追加するには、AddSubmenu メソッドを使用してサブメニューを作成します。
このメソッドは新しい PopupMenuItem オブジェクトを作成し、指定されたメニューに追加します。この特殊な PopupMenuItem オブジェクトにはタイプ acSubmenu が割り当てられます。
AddSubmenu メソッドは入力として、Index、Label、および Tag という 3 つのパラメータを受け取ります。
Index パラメータは、メニュー内における新しいメニュー項目の位置を指定する整数です。インデックスは、タイトルに続くメニューの先頭位置として、位置ゼロ(0)から始まります。メニューの最後に新しいメニュー項目を追加するには、Index パラメータにメニューの Count プロパティと同じ値を指定します(メニューの Count プロパティはそのメニューのメニュー項目の合計数を表します)。
Label パラメータは、メニュー項目の内容と形式を定義する文字列です。メニュー項目としてユーザ向けに表示される文字のことをタイトルと呼び、ラベルに含まれているすべての DIESEL 文字列式と特殊コードを変換して生成されます。たとえば、ラベル "&Edit" からは、"Edit" が生成されます。
Tag パラメータは名前タグとも呼び、英数字とアンダースコア(_)からなる文字列です。この文字列は特定のメニュー内のメニュー項目を一意に識別するためのものです。
AddSubmenu メソッドは作成された PopupMenuItem オブジェクトを返しません。その代わりに、サブメニューが示している新しいメニューを返します。PopupMenu オブジェクトとして返された新しいメニューは、通常のメニューと同じように配置できます。
この例では、"TestMenu" という名前の新しいメニューを作成し、それを "OpenFile" という名前のサブメニューに追加します。次に、このサブメニューに "Open" という名前のメニュー項目を配置します。このメニュー項目は、図面を開きます。最後にこのメニューをメニュー バーに表示します。
Sub Ch6_AddASubMenu() 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("", "OpenFile") ' Add a menu item to the sub menu 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 = FileSubMenu.AddMenuItem _ (newMenu.count + 1, "Open", openMacro) ' Display the menu on the menu bar newMenu.InsertInMenuBar _ (ThisDrawing.Application.menuBar.count + 1) End Sub