Poniższy przykład pokazuje, jak utworzyć przyciski/menu CommandBar, które przekazują jeden lub więcej argumentów do makra.
przykład pokazuje również, jak dodać nowy element do menu skrótów Cell.
Sub AddCommandToCellShortcutMenu() Dim i As Integer, ctrl As CommandBarButton DeleteAllCustomControls ' usuń kontrolki, jeśli już istnieją ' utwórz nowe kontrolki Za pomocą Application.CommandBars(25) ' menu skrótów komórki ' dodaj zwykły przycisk paska poleceń Set ctrl = .Controls.Add (msoControlButton, , , , True) With ctrl .BeginGroup = True .Caption = "Nowe Menu1" .FaceId = 71 .State = msoButtonUp .Style = msoButtonIconAndCaption .Tag = "TESTTAG1" .OnAction = "MyMacroName2" End With przycisk, który przekazuje jeden argument ciągu Set ctrl = .Controls.Add(msoControlButton, , , , True) With ctrl .BeginGroup = False .Caption = "New Menu2" .FaceId = 72 .Style = msoButtonIconAndCaption .Tag = "TESTTAG2" .OnAction = "'MyMacroName2 ""New Menu2""'" End With ' dodaj przycisk, który przekazuje jeden argument ciągu Set ctrl = .Controls.Add(msoControlButton, , , , True) With ctrl .BeginGroup = False .Caption = "Nowy Menu3" .FaceId = 73 .Style = msoButtonIconAndCaption .Tag = "TESTTAG3" .OnAction = "'MyMacroName2 """ & .Caption & """'" End With ' dodaj przycisk, który przekazuje dwa argumenty, ciąg i liczbę całkowitą Set ctrl = .Controls.Add(msoControlButton, , , , True) With ctrl . BeginGroup = False .Caption = "Nowe Menu4" .FaceId = 74 .Style = msoButtonIconAndCaption .Tag = "TESTTAG4" .OnAction = "'MyMacroName3 """ & .Caption & """, 10'" Zakończ z ctrl = Nic End Sub Sub DeleteAllCustomControls() ' usuń kontrolki, jeśli już istnieją Dim i As Integer For i = 1 do 4 DeleteCustomCommandBarControl "TESTTAG" & i Next i End Sub Private Sub DeleteCustomCommandBarControl(CustomControlTag As String) ' usuwa WSZYSTKIE kontrolki CommandBar z Tag = CustomControlTag w przypadku błędu Wznów Dalej Wykonaj Application.CommandBars.FindControl(, , CustomControlTag, False). Usuń pętlę do Application.CommandBars.FindControl(, , _ CustomControlTag, False) to nic w przypadku błędu Przejdź do 0 End Sub ' przykładowe makra używane przez przyciski paska poleceń Sub MyMacroName1() MsgBox "Czas jest " & Format(Time, "h h:mm:ss") End Sub Sub MyMacroName2(Optional MsgBoxCaption As String = "UNKNOWN") MsgBox "Czas to " & Format(Time, "hh:mm:ss"), , _ "To makro zostało uruchomione z " & MsgBoxCaption End Sub Sub MyMacroName3(MsgBoxCaption As String, DisplayValue As Integer) MsgBox "Czas to " & Format(Time, "hh:mm:ss"), , _ MsgBoxCaption & " " & DisplayValue End Sub