AddSeparator Method (ActiveX)

Adds a separator to an existing menu or toolbar.

Supported platforms: Windows only

Signature

VBA:

RetVal = object.AddSeparator(Index)
object

Type: PopupMenu, Toolbar

The objects this method applies to.

Index

Access: Input-only

Type: Variant

The index location in the menu or toolbar where the item is to be added.

If an integer is used to specify a given location in the menu or toolbar, the index must be between 1 and N-1, where N is the number of objects in the popup menu or in the toolbar. The separator will be added immediately before the specified index location. To add the separator to the end of a menu or toolbar, set the index to be greater than N.

If a string is specified and the indexed item does not exist, then the separator is added at the end of the menu or toolbar.

Return Value (RetVal)

Type: PopupMenuItem, ToolbarItem

The newly created separator item.

Remarks

The first item in a menu or toolbar cannot be a separator, therefore you cannot add a separator into index position 0.

You cannot add a separator immediately next to another separator.

Examples

VBA:

Sub Example_AddSeparator()
    ' This example creates a new menu called TestMenu and inserts a menu item
    ' and a separator into it. 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 a menu item to the new 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 = newMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro)
    
    ' Add a separator to the end of the menu
    Dim newMenuSeparator As AcadPopupMenuItem
    Set newMenuSeparator = newMenu.AddSeparator("")
    
    ' Display the menu on the menu bar
    newMenu.InsertInMenuBar ThisDrawing.Application.MenuBar.count + 1
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AddSeparator()
    ;; This example creates a new menu called TestMenu and inserts a menu item
    ;; and a separator into it. 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 a menu item to the new menu
    (setq openMacro (strcat (Chr 3) (Chr 3) (Chr 95) "open" (Chr 32)))
    (setq newMenuItem (vla-AddMenuItem newMenu (1+ (vla-get-Count newMenu)) "Open" openMacro))
    
    ;; Add a separator to the end of the menu
    (setq newMenuSeparator (vla-AddSeparator newMenu ""))
    
    ;; 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)
)