VBA Tutorial for egendefinerte verktøylinjer i Excel

VBA Tutorial for egendefinerte verktøylinjer i Excel


Visual Basic for Applications, eller VBA, gjør det mulig å programmere tilpasset atferd i Excel-arbeidsbøker. En av de mange bruksområdene for VBA er å bygge og vise egendefinerte verktøylinjer med kommandoknappene du velger som utfører innebygde Excel-kommandoer samt tilpassede VBA-makroer. I stedet for å bruke standard Excel menyer som er optimalisert for den gjennomsnittlige bruker, kan du ha absolutt kontroll over hvilke kommandoer du har rask tilgang til. Siden koden er innebygd i arbeidsboken selv, vil egendefinerte menyer være tilgjengelig overalt du åpner den.

Bruksanvisning

1 Trykk "Alt" og "F11" samtidig fra Excel-regneark for å starte Visual Basic-redigering.

2 Dobbeltklikk på "Thisworkbook" i venstre navigasjonsruten for å åpne en tom kode vindu.

3 Kopier og lim inn følgende kode i det tomme kodevinduet:

Sub AddMenus ()

Dim cMenu1 Som CommandBarControl

Dim cbMainMenuBar Som CommandBar

Dim iHelpMenu As Integer

Dim cbcCutomMenu Som CommandBarControl

'(1) Slett alle eksisterende. Vi må bruke On Error Resume neste _

Hvis den ikke eksisterer.

På Error Resume Next

Application.CommandBars ( "regneark menylinjen"). Controls ( "& Ny meny"). Slett

På Error GoTo 0

'(2) Sett en CommandBar variabel til regnearkmenylinjen

Sett cbMainMenuBar = _

Application.CommandBars("Worksheet Menu Bar")

'(3) Returner indeks antall Hjelp-menyen. Vi kan da bruke _

dette for å plassere en egendefinert meny før.

iHelpMenu = _

cbMainMenuBar.Controls("Help").Index

'(4) Legg til en kontroll til "regneark menylinjen" før Hjelp.

"Sett en CommandBarControl variabel til det

Sett cbcCutomMenu = _

cbMainMenuBar.Controls.Add(Type:=msoControlPopup, _

Før: = iHelpMenu)

'(5) Gi kontrollen til en bildetekst

cbcCutomMenu.Caption = "& amp; Ny meny"

'(6) Arbeide med vår nye Control, legge til en sub-kontroll og _

gi den en bildetekst og fortelle det som makro å kjøre (VedHandling).

Med cbcCutomMenu.Controls.Add (Type: = msoControlButton)

.Caption = "Menu 1"

.OnAction = "MyMacro1"

End With

'(6a) legg til sub-kontroll gir det en Caption _

og fortelle det som makro å kjøre (VedHandling)

Med cbcCutomMenu.Controls.Add (Type: = msoControlButton)

.Caption = "Menu 2"

.OnAction = "MyMacro2"

End With

'Gjenta trinn "6a" for hvert menyelement du vil legge til.

Legg til en annen meny som vil føre til en annen meny

"Sett en CommandBarControl variabel til det

Sett cbcCutomMenu = cbcCutomMenu.Controls.Add (Type: = msoControlPopup)

«Gi kontrollen til en bildetekst

cbcCutomMenu.Caption = "Ne&xt Menu"

Legg til en multimedietaster til undermenyen nettopp opprettet ovenfor

Med cbcCutomMenu.Controls.Add (Type: = msoControlButton)

.Caption = "&Charts"

.FaceId = 420

.OnAction = "MyMacro2"

End With

End Sub

Sub DeleteMenu ()

På Error Resume Next

Application.CommandBars("Worksheet Menu Bar").Controls("&New Menu").Delete

På Error GoTo 0

End Sub

Sub MyMacro1 ()

MsgBox "Jeg kan ikke gjøre mye enda, gjør jeg?", VbInformation, "Ozgrid.com"

End Sub

Sub MyMacro2 ()

MsgBox "Jeg kan ikke gjøre mye ennå heller, gjør jeg?", VbInformation, "Ozgrid.com"

End Sub

Private Sub Workbook_Activate ()

Kjør "AddMenus"

End Sub

4 Trykk "F5" for å lagre og kjøre koden. Dette vil legge til egendefinerte menyen hver gang du åpner arbeidsboken.

Hint

  • Du kan også opprette egendefinerte verktøylinjer uten VBA gjennom "Verktøy> Tilpass" -menyen.