VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: CommandBar-Objekt

CommandBars-Auflistung (CommandBar-Objekt)
CommandBarControls-Auflistung (CommandBarControl-Objekt)
CommandBarButton-Objekt
CommandBarComboBox-Objekt
CommandBarPopup-Objekt

Stellt eine Befehlsleiste in der Containeranwendung dar. Das CommandBar-Objekt ist ein Bestandteil der CommandBars-Auflistung.

Verwenden des CommandBar-Objekts

Verwenden Sie CommandBars(index), wobei index der Name oder die Indexnummer einer Befehlsleiste ist, um ein einziges CommandBar-Objekt zurückzugeben. Im folgenden Beispiel wird die Auflistung der Befehlsleisten durchlaufen, um die Befehlsleiste "Forms" zu suchen. Wird diese Befehlsleiste gefunden, dann macht der Beispielcode sie sichtbar und schützt ihren Andockstatus. In diesem Beispiel stellt die cb-Variable ein CommandBar-Objekt dar.

foundFlag = False
For Each cb In CommandBars
    If cb.Name = "Forms" Then
        cb.Protection = msoBarNoChangeDock
        cb.Visible = True
        foundFlag = True
    End If
Next cb
If Not foundFlag Then
    MsgBox "The collection does not contain a Forms command bar."
End If

Sie können einen Namen oder eine Indexnummer verwenden, um in der Liste der verfügbaren Menü- und Symbolleisten in der Containeranwendung eine Menüleiste oder eine Symbolleiste anzugeben. Wenn Sie jedoch ein Menü, ein Kontextmenü oder ein Untermenü angeben möchten (alle durch CommandBar-Objekte dargestellt), müssen Sie einen Namen verwenden. In diesem Beispiel wird am unteren Ende des Menüs Tools ein neuer Menübefehl hinzugefügt. Wenn der Benutzer auf diesen neuen Menübefehl klickt, wird die Prozedur "qtrReport" ausgeführt.

Set newItem = CommandBars("Tools").Controls.Add(Type:=msoControlButton)
With newItem
    .BeginGroup = True
    .Caption = "Make Report"
    .FaceID = 0
    .OnAction = "qtrReport"
End With

Wenn zwei oder mehr benutzerdefinierte Menüs oder Untermenüs den gleichen Namen haben, gibt CommandBars(index) den ersten zurück. Damit in jedem Fall das richtige Menü bzw. Untermenü zurückgegeben wird, suchen Sie das Popup-Steuerelement, das das Menü anzeigt, und wenden die CommandBar-Eigenschaft auf dieses Steuerelement an, so dass die Befehlsleiste zurückgegeben wird, die dieses Menü darstellt.

In diesem Beispiel wird davon ausgegangen, dass das dritte Steuerelement auf der Symbolleiste "Custom Tools" ein Popup-Steuerelement ist. Am unteren Ende des entsprechenden Menüs wird der Befehl Save hinzugefügt.

Set viewMenu = CommandBars("Custom Tools").Controls(3)
viewMenu.Controls.Add ID:=3    'ID of Save command is 3