Exemplul de mai jos arată cum puteți crea butoane / meniuri CommandBar care transmit unul sau mai multe argumente unei macro.
exemplul arată, de asemenea, cum puteți adăuga un element nou în meniul de comandă rapidă Cell.
Sub AddCommandToCellShortcutMenu () Dim i As Integer, ctrl Ca CommandBarButton DeleteAllCustomControls 'ștergeți comenzile dacă există deja' creați noile controale cu Application.CommandBars (25) 'meniul de comandă rapidă al celulei' adăugați o comandă obișnuită buton Set ctrl = .Controls.Add (msoControlButton,,,, True) With ctrl .BeginGroup = True .Caption = "New Menu1" .FaceId = 71 .State = msoButtonUp .Style = msoButtonIconAndCaption .Tag = "TESTTAG1" .OnAction = "MyMacroName2" buton care trece un argument șir 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 'adaugă un buton care trece trece un argument șir Set ctrl = .Controls.Add (msoControlButton,,,, True) With ctrl .BeginGroup = False .Caption = "New Menu3 ".FaceId = 73 .Style = msoButtonIconAndCaption .Tag =" TESTTAG3 ".OnAction = "'MyMacroName2" "" & .Caption & "" "'" End With 'adaugă un buton care trece două argumente, un șir și un număr întreg Set ctrl = .Controls.Add (msoControlButton,,,, True) Cu ctrl. BeginGroup = False .Caption = "New Menu4" .FaceId = 74 .Style = msoButtonIconAndCaption .Tag = "TESTTAG4" .OnAction = "'MyMacroName3" "" & .Caption & "" ", 10'" End With End With Set ctrl = Nothing End Sub Sub DeleteAllCustomControls () 'ștergeți comenzile dacă acestea există deja Dim i As Integer For i = 1 To 4 DeleteCustomCommandBarControl "TESTTAG" & i Next i End Sub Private Sub DeleteCustomCommandBarControl (CustomControlTag As String)' șterge TOATE comenzile CommandBar cu Etichetă = CustomControlTag la eroare Reîncepeți apoi Faceți Application.CommandBars.FindControl (,, CustomControlTag, False). Ștergeți bucla până la Application.CommandBars.FindControl (,, _ CustomControlTag, False) Nu este nimic la eroare GoTo 0 End Sub 'macrocomenzi utilizate butoanele barei de comandă Sub MyMacroName1 () MsgBox "Ora este" & Format (Ora ", h h: mm: ss ") End Sub Sub MyMacroName2 (Optional MsgBoxCaption As String =" UNKNOWN ") MsgBox" Time is "& Format (Time," hh: mm: ss "),, _" Această macro a fost pornită de la " & MsgBoxCaption End Sub Sub MyMacroName3 (MsgBoxCaption As String, DisplayValue As Inger) MsgBox "Ora este" & Format (Time, "hh: mm: ss"),, _ MsgBoxCaption & "" & DisplayValue End Sub