Meer informatie
Microsoft verstrekt deze code zonder enige expliciete of impliciete garantie, daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.
Voorbeelden in dit artikel
In de voorbeelden in dit artikel wordt VBA-programmacode gebruikt in Excel 2000, Excel 2002 en Excel 2003 om menu's aan te passen. Ga als volgt te werk om de voorbeeldmacro's te gebruiken:
- Start Excel.
- Wijs Macro aan in het menu Extra en klik op Visual Basic-editor.
- Open het menu Invoegen en klik op Module.
- Typ een macrovoorbeeld uit dit artikel over of kopieer de macrovoorbeelden met knippen en plakken in een modulewerkblad.
- Open het menu Uitvoeren en klik op Sub/UserForm uitvoeren.
- Als het dialoogvenster Macro's wordt geopend, klikt u op de naam van de macro en op Uitvoeren.
Terug naar beginOpdrachtbalken
In Microsoft Office worden werkbalken, menubalken en snelmenu's via programmeercode bestuurd als één type object: opdrachtbalken. Alle volgende items worden in VBA gevormd door
CommandBar-objecten:
- Menubalken, werkbalken en snelmenu's.
- Menu's op menubalken en werkbalken.
- Vervolgmenu's in menu's, vervolgmenu's en snelmenu's.
U kunt elke gewenste ingebouwde menubalk of werkbalk wijzigen en u kunt aangepaste werkbalken, menubalken en snelmenu's maken en wijzigen die u met de VBA-programmacode samenstelt. Zo kunt u de functies van uw programma weergeven als afzonderlijke knoppen op werkbalken of als gegroepeerde opdrachtnamen in menu's. U gebruikt dezelfde soort besturingselementen omdat werkbalken en menu's beide opdrachtbalken zijn.
In VBA en Microsoft Visual Basic worden knoppen en menuopdrachten aangeduid met
CommandBarButton-objecten. De pop-upbesturingselementen waarmee menu's en vervolgmenu's worden weergegeven, worden aangeduid met
CommandBarPopup-objecten. In de volgende voorbeelden ziet u het besturingselement 'Menu' en het besturingselement 'Submenu'. Beide zijn pop-upbesturingselementen die een menu en een vervolgmenu weergeven. Menu én vervolgmenu zijn unieke
CommandBar-objecten met elk een eigen set besturingselementen.
In Microsoft Excel worden menubalken en werkbalken aangeduid als hetzelfde programmeerbare objecttype, namelijk het
CommandBar-object. Met de besturingselementen in het
CommandBar-object verwijst u naar menu's, menuopdrachten, vervolgmenu's en snelmenu's. Bij het argument
Type gebruikt u voor elk besturingselement een constante om aan te geven welk type besturingselement moet worden gebruikt voor het menu, het vervolgmenu of de opdracht.
Terug naar beginConstanten voor besturingselementen
Hierna volgt een lijst met de constanten voor besturingselementen in Excel 2003 waarmee wordt aangegeven welk type grafisch besturingselement moet worden gebruikt voor een bepaald besturingselement op een menubalk:
- MsoControlActiveX*
- MsoControlAutoCompleteCombo***
- MsoControlButton
- MsoControlButtonDropdown
- MsoControlButtonPopup
- MsoControlComboBox
- MsoControlCustom
- MsoControlDropdown
- MsoControlEdit
- MsoControlExpandingGrid
- MsoControlGauge
- MsoControlGenericDropdown
- MsoControlGraphicCombo
- MsoControlGraphicDropdown
- MsoControlGraphicPopup
- MsoControlGrid
- MsoControlLabel
- MsoControlLabelEx***
- MsoControlOCXDropDown
- MsoControlPane **
- MsoControlPopup
- MsoControlSpinner***
- MsoControlSplitButtonMRUPopup
- MsoControlSplitButtonPopup
- MsoControlSplitDropdown
- MsoControlSplitExpandingGrid
- MsoControlWorkPane**
*=Nieuw in Microsoft Excel 2000
**=Nieuw in Microsoft Excel 2002
***=Nieuw in Microsoft Office Excel 2003
Terug naar beginMenubalken
Een menubalk is een bepaald type opdrachtbalk. Een menubalk is het type object waaraan u menu's, menuopdrachten en vervolgmenu's toevoegt.
Ga als volgt te werk om meer informatie te vinden over het beheren van menubalken en menuopdrachten in Excel:
- Start de Microsoft Visual Basic-editor.
- Open het menu Help en klik op Microsoft Visual Basic Help.
- Typ in het vak Office-assistent of in het vak Antwoordwizard de term Menubalken en klik op Zoeken.
- Klik in Excel 2003 en Excel 2002 op Menubalken en menuopdrachten toevoegen en beheren. Klik in Excel 2000 op Menu's en werkbalken.
Tijdens runtime kunt u wijzigingen aanbrengen aan de menubalk en de besturingselementen ervan. De wijzigingen die u op de menubalk aanbrengt, kunnen het uiterlijk of de positie van de menubalk wijzigen. Welke wijzigingen u aan de besturingselementen kunt aanbrengen, hangt af van het type besturingselement. In de volgende tabel vindt u een overzicht van de meest gebruikte eigenschappen en de gebruikelijke methoden voor het wijzigen van de status, de actie of de inhoud van een besturingselement:
Eigenschap of methode | Doel |
Add | Voegt een menubalk toe met de methode Add van de objectcollectie CommandBars en door het opgeven van de waarde TRUE bij het argument MenuBar. |
Ingeschakeld | Als de eigenschap Enabled is ingesteld op de waarde TRUE, kan de gebruiker de opgegeven menubalk zichtbaar maken via Visual Basic-programmacode. Als de eigenschap Enabled is ingesteld op de waarde FALSE, kan de gebruiker de menubalk niet zichtbaar maken. De menubalk wordt dan echter wel in de lijst met beschikbare opdrachtbalken weergegeven. |
Protection | Hiermee kunt u de menubalk beveiligen tegen bepaalde acties van gebruikers. |
Position | Hiermee kunt u de positie van de nieuwe menubalk ten opzichte van het programmavenster opgeven. De positie van de menubalk ten opzichte van het programmavenster kan een van de volgende eigenschappen in de vorm van MsoBarPosition-constanten zijn: msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, msoBarFloating, msoBarPopup (voor het maken van snelmenu's) of msoBarMenuBar (alleen voor Apple Macintosh). |
Visible | Hiermee bepaalt u of het besturingselement zichtbaar of verborgen is. |
Terug naar beginEen id voor een besturingselement op de opdrachtbalk retourneren
In de volgende voorbeeldcode wordt een id geretourneerd voor de actieve menubalk:
Sub Id_Control ()Dim myId as Object set myId = CommandBars("Worksheet Menu Bar").Controls("Extra") MsgBox myId.Caption & Chr(13) & MyId.IdEnd Sub
Terug naar beginDe naam van de actieve menubalk bepalen
In de volgende voorbeeldcode wordt de naam voor de actieve menubalk geretourneerd:
Sub MenuBars_GetName() MsgBox CommandBars.ActiveMenuBar.NameEnd Sub
Terug naar beginDe actieve status opslaan (voor ingebouwde of aangepaste menubalken)
U kunt de variabele
OriginalMenuBar declareren als openbare variabele, zodat een subroutine deze in een andere subroutine kan gebruiken, zoals Auto_Close. Als u de variabele op deze manier declareert en gebruikt, wordt de vorige menubalk van de gebruiker in de oorspronkelijke staat teruggebracht. Met de volgende voorbeeldmacro wordt de menubalk opnieuw ingesteld:
Public OriginalMenuBar as Object
Sub MenuBars_Capture() Set OriginalMenuBar = CommandBars.ActiveMenuBarEnd Sub
Terug naar beginEen aangepaste opdrachtbalk maken
Met de volgende voorbeeldcode wordt een aangepaste opdrachtbalk gemaakt met de naam
Mijn opdrachtbalk:
Sub MenuBar_Create() Application.CommandBars.Add Name:="Mijn opdrachtbalk" End Sub
U kunt ook een aangepaste opdrachtbalk maken met het argument
Temporary:=True. Met het argument
Temporary:=True kunnen de opdrachtbalken automatisch worden teruggezet in de oorspronkelijke staat zodra u Excel afsluit. In de volgende code wordt het argument
Temporary:=True gebruikt voor het maken van een aangepaste opdrachtbalk:
Sub MenuBar_Create()Application.CommandBars.Add Name:="Mijn opdrachtbalk", Temporary:=TrueEnd Sub
Terug naar beginEen aangepaste opdrachtbalk weergeven
In het volgende voorbeeld wordt de aangepaste menubalk
Mijn aangepaste balk gemaakt en weergegeven, waarna de ingebouwde menubalk hierdoor wordt vervangen:
Sub MenuBar_Show()Dim myNewBar As Object Set myNewBar = CommandBars.Add(Name:="Aangepast1", Position:=msoBarFloating) ' U moet de aangepaste menubalk eerst inschakelen om deze zichtbaar te maken. ' Als u een menubalk inschakelt, wordt deze toegevoegd aan de lijst met beschikbare menubalken in ' het dialoogvenster Aanpassen.' Als u de eigenschap van de menubalk instelt op True, wordt de ingebouwde menubalk vervangen. myNewBar.Enabled = True myNewBar.Visible = TrueEnd Sub
Terug naar beginEen aangepaste opdrachtbalk verwijderen
Met de volgende voorbeeldcode wordt de aangepaste menubalk met de naam
Aangepast1 verwijderd:
Sub MenuBar_Delete() CommandBars("Aangepast1").DeleteEnd Sub
Terug naar beginEen opdrachtbalk verbergen
Met de volgende voorbeeldcode wordt de ingebouwde menubalk
Grafiek uit de lijst met beschikbare menubalken verwijderd:
Sub MenuBar_Display() CommandBars("Chart").Enabled = FalseEnd Sub
Terug naar beginEen opdrachtbalk weergeven
Met de volgende voorbeeldcode wordt de ingebouwde menubalk
Grafiek aan de lijst met beschikbare menubalken toegevoegd:
Sub MenuBar_Display() CommandBars("Chart").Enabled = TrueEnd Sub
Terug naar beginEen ingebouwde opdrachtbalk herstellen
Als u een menubalk herstelt, worden de standaardbesturingselementen (voor menu's én menuopdrachten) teruggezet op de oorspronkelijke instellingen. Met de volgende voorbeeldcode wordt de ingebouwde menubalk
Grafiek hersteld:
Sub MenuBar_Restore() CommandBars("Chart").ResetEnd Sub
Opmerking U kunt alleen ingebouwde menubalken op de oorspronkelijke instellingen terugzetten. Met aangepaste menubalken is dit niet mogelijk.
Terug naar beginMenu's
Als u een menubalk herstelt, worden de standaardbesturingselementen (voor menu's én menuopdrachten) teruggezet op de oorspronkelijke instellingen. Met de volgende voorbeeldcode wordt de ingebouwde menubalk
Grafiek hersteld:
Sub MenuBar_Restore() CommandBars("Chart").ResetEnd Sub
Opmerking U kunt alleen ingebouwde menubalken op de oorspronkelijke instellingen terugzetten. Met aangepaste menubalken is dit niet mogelijk.
Terug naar beginEen aangepast menubesturingselement aan een opdrachtbalk toevoegen
Met de volgende voorbeeldcode wordt de naam van een menu toegevoegd dat u via programmeercode toevoegt aan de
Werkbladmenubalk. In deze code wordt als voorbeeld de menunaam
Nieuw menu toegevoegd aan de
Werkbladmenubalk.
Opmerking U kunt dit menu uiteraard elke gewenste naam geven.
Sub Menu_Create()Dim myMnu As Object Set myMnu = CommandBars("Worksheet menu bar").Controls. _ Add(Type:=msoControlPopup, before:=3) With myMnu ' Het teken "&" duidt op de toewijzing van een toegangstoets (in dit geval Alt+M). .Caption = "Nieuw &menu" End WithEnd Sub
Terug naar beginEen menubesturingselement op een opdrachtbalk uitschakelen
Een uitgeschakeld menubesturingselement wordt grijs weergegeven en is niet beschikbaar op de opdrachtbalk. In het volgende voorbeeld wordt het menu
Nieuw menu uitgeschakeld:
Sub Menu_Disable() CommandBars("Worksheet menu bar").Controls("Nieuw &menu").Enabled = FalseEnd Sub
Terug naar beginEen menubesturingselement op een opdrachtbalk inschakelen
Met de volgende voorbeeldcode wordt het menu
Nieuw menu ingeschakeld dat u hebt uitgeschakeld in het gedeelte 'Een menubesturingselement op een opdrachtbalk uitschakelen':
Sub Menu_Disable() CommandBars("Worksheet menu bar").Controls("Nieuw &menu").Enabled = TrueEnd Sub
Terug naar beginEen menubesturingselement van een opdrachtbalk verwijderen
Met de volgende voorbeeldcode wordt het menu
Nieuw menu dat u hebt gemaakt in de sectie 'Een aangepast menubesturingselement aan een opdrachtbalk toevoegen' verwijderd uit de
Werkbladmenubalk :
Sub Menu_Delete() CommandBars("Werkbladmenubalk").Controls("Nieuw &menu").DeleteEnd Sub
Terug naar beginEen menubesturingselement op een opdrachtbalk herstellen
Met de volgende voorbeeldcode wordt de ingebouwde menubalk
Grafiek op de
Werkbladmenubalk hersteld:
Sub Menu_Restore()Dim myMnu As Object Set myMnu = CommandBars("Chart") myMnu.ResetEnd Sub
Terug naar beginOpdrachten
Welke wijzigingen u in een opdracht kunt aanbrengen, hangt af van het type besturingselement. Over het algemeen geldt dat knoppen ingeschakeld of verborgen zijn. Invoervakken, vervolgkeuzelijsten en keuzelijsten met invoervak zijn in die zin veelzijdiger dat u onderwerpen aan de lijst kunt toevoegen of eruit kunt verwijderen. Bovendien kunt u bepalen welke actie moet worden uitgevoerd door te kijken naar de waarde van de onderwerpen die u in de lijst hebt geselecteerd. U kunt de actie van elk gewenst besturingselement wijzigen in die van een ingebouwde of aangepaste functie.
In de volgende tabel vindt u een overzicht van de meest gebruikte eigenschappen en de gebruikelijke methoden voor het wijzigen van de status, de actie of de inhoud van een besturingselement:
Eigenschap of methode | Doel |
Add | Hiermee voegt u een opdracht toe aan een opdrachtbalk. |
AddItem | Hiermee voegt u een item toe aan de vervolgkeuzelijst in een keuzelijst of keuzelijst met invoervak. |
Style | Hiermee bepaalt u of op het knopvlak een pictogram of een bijschrift wordt weergegeven. |
OnAction | Hiermee bepaalt u welke procedure moet worden uitgevoerd wanneer de gebruiker de waarde van het besturingselement wijzigt. |
Visible | Hiermee bepaalt u of het besturingselement zichtbaar of verborgen is. |
Ga als volgt te werk om meer informatie over menu's in Excel 2003 en Excel 2002 te vinden:
- Start de Visual Basic Script-editor.
- Open het menu Help en klik op Microsoft Visual Basic Help.
- Typ menu's in het vak Help voor Zoeken en druk op ENTER.
- Klik op Menubalken en menuopdrachten toevoegen en beheren (Office).
Terug naar beginEen scheidingsbalk aan een menubesturingselement toevoegen
In de volgende voorbeeldcode wordt een scheidingsbalk vöör de opdracht
Werkblad in het menu
Invoegen toegevoegd:
Sub menuItem_AddSeparator() CommandBars("Worksheet menu bar").Controls("Invoegen") _ .Controls("Werkblad").BeginGroup = TrueEnd Sub
Opmerking Als u een scheidingsbalk wilt verwijderen, stelt u de eigenschap
BeginGroup in op
False.
Terug naar beginEen aangepast opdrachtbesturingselement in een menu maken
In de volgende voorbeeldcode wordt een nieuwe opdracht gemaakt met de naam
Aangepast1 in het menu
Extra op de
Werkbladmenubalk, waarna de macro
Code_Aangepast1 wordt uitgevoerd als u op
Aangepast1 klikt:
Sub menuItem_Create() With CommandBars("Worksheet menu bar").Controls("Extra") .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Aangepast1" .Controls("Aangepast1").OnAction = "Code_Aangepast1" End WithEnd Sub
Terug naar beginEen selectiemarkering naast een opdrachtbesturingselement plaatsen
In de volgende voorbeeldcode wordt een selectiemarkering naast de opdracht
Aangepast1 geplaatst als deze niet is geselecteerd, waarna de selectiemarkering wordt verwijderd als de opdracht
Aangepast1 wordt geselecteerd:
Sub menuItem_checkMark()Dim myPopup as Object
Set myPopup = CommandBars("Worksheet menu bar").Controls("Extra") If myPopup.Controls("Aangepast1").State = msoButtonDown Then ' Verwijder selectiemarkering naast menuopdracht. myPopup.Controls("Aangepast1").State = msoButtonUp MsgBox "Aangepast1 is nu uitgeschakeld" Else ' Plaats selectiemarkering naast menuopdracht. myPopup.Controls("Aangepast1").State = msoButtonDown MsgBox "Aangepast1 is nu ingeschakeld" End IfEnd Sub
Terug naar beginEen opdrachtbesturingselement op een opdrachtbalk uitschakelen
In de volgende voorbeeldcode wordt de opdracht
Aangepast1 uitgeschakeld die u in het menu
Extra hebt gemaakt in het gedeelte 'Een aangepast opdrachtbesturingselement in een menu maken':
Sub MenuItem_Disable()Dim myCmd as Object Set myCmd = CommandBars("Worksheet menu bar").Controls("Extra") myCmd.Controls("Aangepast1").Enabled = FalseEnd Sub
Terug naar beginEen opdrachtbesturingselement op een opdrachtbalk inschakelen
Met de volgende voorbeeldcode wordt de opdracht
Aangepast1 ingeschakeld die u hebt uitgeschakeld in het gedeelte 'Een opdrachtbesturingselement op een opdrachtbalk uitschakelen':
Sub MenuItem_Enable()Dim myCmd as Object Set myCmd = CommandBars("Worksheet menu bar").Controls("Extra") myCmd.Controls("Aangepast1").Enabled = TrueEnd Sub
Terug naar beginEen opdrachtbesturingselement van een menu verwijderen
Met de volgende voorbeeldcode wordt de opdracht
Opslaan verwijderd uit het menu
Bestand:
Sub menuItem_Delete()Dim myCmd As Object Set myCmd = CommandBars("Worksheet menu bar").Controls("Bestand") myCmd.Controls("Opslaan").DeleteEnd Sub
Terug naar beginEen ingebouwd opdrachtbesturingselement in een menu herstellen
Als u een opdrachtbesturingselement in een menu wilt herstellen, moet u weten wat het identificatienummer (id) van het besturingselement is. Zie het gedeelte 'Een id voor een besturingselement op de opdrachtbalk retourneren' voor informatie over het vaststellen van het id-nummer. In het volgende voorbeeld wordt de opdracht
Opslaan die u in het gedeelte 'Een opdrachtbesturingselement van een menu verwijderen' hebt verwijderd, hersteld:
Sub menuItem_Restore()Dim myCmd As Object Set myCmd = CommandBars("Worksheet menu bar").Controls("Bestand") ' Id 3 verwijst naar het besturingselement voor de menuopdracht Opslaan. myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5End Sub
Terug naar beginVervolgmenu's
Vervolgmenu's worden naast het bovenliggende menu weergegeven als u op een opdracht klikt. Een opdracht die een besturingselement voor een vervolgmenu is, is voorzien van een zwart pijltje aan de rechterkant van de opdrachtnaam.
Terug naar beginEen vervolgmenu toevoegen
In de volgende voorbeeldcode wordt een nieuw vervolgmenu met de naam
Nieuw vervolg toegevoegd aan het menu
Extra op de
Werkbladmenubalk:
Sub SubMenu_Create()Dim newSub as Object Set newSub = CommandBars("Worksheet menu bar").Controls("Extra") With newSub .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="Nieuw vervolg" End WithEnd Sub
Terug naar beginEen opdracht aan een vervolgmenu toevoegen
In de volgende voorbeeldcode wordt een nieuwe opdracht met de naam
Vervolgitem1 toegevoegd aan het vervolgmenu
Nieuw vervolg, waarna de macro
Code_Vervolgitem1 wordt uitgevoerd als u op
Vervolgitem1 klikt:
Sub SubMenu_AddItem()Dim newSubItem as Object Set newSubItem = CommandBars("Worksheet menu bar") _ .Controls("Extra").Controls("Nieuw vervolg") With newSubItem .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Vervolgitem1" .Controls("Vervolgitem1").OnAction = "Code_Vervolgitem1" End WithEnd Sub
Terug naar beginEen opdrachtbesturingselement in een vervolgmenu uitschakelen
In de volgende voorbeeldcode wordt dezelfde opdracht
Vervolgitem uitgeschakeld die u in het gedeelte 'Een opdracht aan een vervolgmenu toevoegen' hebt gemaakt:
Sub SubMenu_DisableItem() CommandBars("Worksheet menu bar").Controls("Extra") _ .Controls("Nieuw vervolg").Controls("Vervolgitem1").Enabled = FalseEnd Sub
In het volgende voorbeeld wordt dezelfde opdracht Vervolgitem ingeschakeld:
Sub SubMenu_DisableItem() CommandBars("Worksheet menu bar").Controls("Extra") _ .Controls("Nieuw vervolg").Controls("Vervolgitem1").Enabled = TrueEnd Sub
Terug naar beginEen opdracht uit een vervolgmenu verwijderen
In het volgende voorbeeld wordt de opdracht
Vervolgitem1 verwijderd die u hebt gemaakt in het vervolgmenu
Nieuw vervolg in het gedeelte 'Een opdracht aan een vervolgmenu toevoegen':
Sub SubMenu_DeleteItem() CommandBars("Worksheet menu bar").Controls("Extra") _ .Controls("Nieuw vervolg").Controls("Vervolgitem1").DeleteEnd Sub
Terug naar beginEen besturingselement voor een vervolgmenu uitschakelen
Met de volgende voorbeeldcode wordt het vervolgmenu
Nieuw vervolg uitgeschakeld dat u in het menu
Extra hebt gemaakt in het gedeelte 'Een vervolgmenu toevoegen':
Sub SubMenu_DisableSub() CommandBars("Worksheet menu bar").Controls("Extra") _ .Controls("Nieuw vervolg").Enabled = FalseEnd Sub
Opmerking Als u het uitgeschakelde besturingselement wilt inschakelen, stelt u de eigenschap
Enabled in op
True.
Terug naar beginEen besturingselement voor een vervolgmenu verwijderen
In de volgende voorbeeldcode wordt het vervolgmenu
Nieuw vervolg verwijderd dat u in het menu
Extra hebt gemaakt in het gedeelte 'Een vervolgmenu toevoegen':
Sub SubMenu_DeleteSub() CommandBars("Worksheet menu bar").Controls("Extra") _ .Controls("Nieuw vervolg").DeleteEnd Sub
Terug naar beginSnelmenubalken
Een snelmenu is een zwevende opdrachtbalk die wordt weergegeven als de gebruiker met de rechtermuisknop op een object klikt. Een snelmenubalk kan dezelfde typen besturingselementen bevatten als een opdrachtbalk en de besturingselementen voeren dezelfde acties uit als op een opdrachtbalk. In de meeste programma's kunt u snelmenu's niet vanuit de programma-interface maken of wijzigen. Daarom moet u de snelmenu's tijdens runtime maken en wijzigen.
Ga als volgt te werk om meer informatie over snelmenu's in Excel 2002 en Excel 2003 te vinden:
- Start de Visual Basic Script-editor.
- Open het menu Help en klik op Microsoft Visual Basic Help.
- Typ snelmenu in het vak Help voor Zoeken en druk op ENTER.
- Klik op Snelmenu's toevoegen en weergeven.
Terug naar beginEen nieuwe snelmenubalk maken
Met de volgende voorbeeldcode wordt een nieuwe snelmenubalk gemaakt met de naam
mijnSnelmenubalk:
Sub Shortcut_Create()Dim myShtCtBar as Object Set myShtCtBar = CommandBars.Add(Name:="mijnSnelmenubalk", _ Position:=msoBarPopup) ‘ Hiermee wordt de snelmenubalk weergegeven. ‘ 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as. myShtCtBar.ShowPopup 200,200End Sub
Opmerking De snelmenubalk is leeg, omdat er nog geen besturingselementen (menuopdrachten of vervolgmenu's) aan zijn toegevoegd.
Terug naar beginSnelmenu's
Snelmenubalken worden weergegeven als u met de rechtermuisknop op een bepaald Excel-object klikt. Excel bevat talloze snelmenubalken waarvoor uiteenlopende menu's beschikbaar zijn. U kunt ook zelf snelmenubalken maken en de ingebouwde menubalken aanpassen.
Terug naar beginEen opdracht op een snelmenubalk maken
Met de volgende voorbeeldcode wordt een nieuwe opdracht met de naam
Item1 toegevoegd aan de snelmenubalk
mijnSnelmenubalk, waarna de macro
Code_Item1 wordt uitgevoerd als u op
Item1 klikt:
Sub Shortcut_AddItem()Dim myBar as Object Set myBar = CommandBars("mijnSnelmenubalk") With myBar .Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1" .Controls("Item1").OnAction = "Code_Item1" End With myBar.ShowPopup 200,200End Sub
Terug naar beginEen opdrachtbesturingselement op een snelmenubalk uitschakelen
Met de volgende voorbeeldcode wordt de opdracht
Item1 uitgeschakeld die u in het gedeelte 'Een opdracht op een snelmenubalk maken' hebt gemaakt:
Sub Shortcut_DisableItem() Set myBar = CommandBars("mijnSnelmenubalk") myBar.Controls("Item1").Enabled = False myBar.ShowPopup 200,200End Sub
Opmerking Als u het uitgeschakelde item wilt inschakelen, stelt u de eigenschap
Enabled in op
True.
Terug naar beginEen opdracht van een snelmenubalk verwijderen
Met de volgende voorbeeldcode wordt de menuopdracht
Item1 van de snelmenubalk
mijnSnelmenubalk verwijderd:
Sub Shortcut_DeleteItem() Set myBar = CommandBars("mijnSnelmenubalk") myBar.Controls("Item1").Delete myBar.ShowPopup 200,200End Sub
Terug naar beginEen snelmenubalk verwijderen
Als u een snelmenubalk verwijdert, worden alle items op de balk verwijderd. Een aangepaste menubalk die is verwijderd, kan niet meer worden hersteld. Als u deze balk wilt herstellen, moet u deze opnieuw maken, inclusief alle menuopdrachten en vervolgmenu's.
Met de volgende voorbeeldcode wordt de snelmenubalk
mijnSnelmenubalk verwijderd die u in het gedeelte 'Een opdracht op een snelmenubalk maken' hebt gemaakt:
Sub Shortcut_DeleteShortCutBar() CommandBars("mijnSnelmenubalk").DeleteEnd Sub
Terug naar beginEen opdracht op een ingebouwde snelmenubalk herstellen
Met de volgende voorbeeldcode worden de standaardopdrachten op de snelmenubalk
Cel van het werkblad hersteld:
Sub Shortcut_RestoreItem() CommandBars("Cell").ResetEnd Sub
Terug naar beginVervolgmenu's in snelmenu's
U kunt vervolgmenu's maken op snelmenubalken. Vervolgmenu's worden naast het bovenliggende menu weergegeven als u op een besturingselement voor een opdracht klikt. Een opdracht die een besturingselement in een vervolgmenu is, is voorzien van een zwart pijltje aan de rechterkant van de opdrachtnaam.
Terug naar beginEen nieuw vervolgmenu op een snelmenubalk maken
In het volgende voorbeeld wordt een nieuw vervolgmenu met de naam
Nieuw vervolg toegevoegd op het snelmenu
Cel van het werkblad:
Sub ShortcutSub_Create() CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _ .Caption = "Nieuw vervolg" ' Hiermee wordt de snelmenubalk weergegeven. ' 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as. CommandBars("Cell").ShowPopup 200, 200End Sub
Opmerking Het vervolgmenu is leeg, omdat er nog geen menuopdrachten aan zijn toegevoegd.
Terug naar beginEen opdrachtbesturingselement maken in een vervolgmenu op een snelmenubalk
Met de volgende macro wordt de opdracht
Vervolgitem1 toegevoegd aan het vervolgmenu
Nieuw vervolg dat u hebt gemaakt in het snelmenu
Cel. Daarna wordt de macro
Code_Vervolgitem1 uitgevoerd als u op
Vervolgitem1 klikt:
Sub ShortcutSub_AddItem()Dim newSubItem as Object Set newSubItem = CommandBars("Cell").Controls("Nieuw vervolg") With newSubItem .Controls.Add(Type:=msoControlButton, before:=1).Caption = "vervolgitem1" ' Hiermee wordt de macro Code_vervolgitem1 uitgevoerd wanneer u op vervolgitem1 klikt. .Controls("vervolgitem1").OnAction = "Code_vervolgitem1" End With ' Hiermee wordt de snelmenubalk Cel weergegeven. ' 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as CommandBars("Cell").ShowPopup 200, 200End Sub
Terug naar beginEen besturingselement voor een vervolgmenuopdracht in een snelmenu uitschakelen
In de volgende voorbeeldcode wordt de opdracht
Vervolgitem1 in het vervolgmenu
Nieuw vervolg uitgeschakeld:
Sub ShortcutSub_DisableItem() CommandBars("Cell").Controls("Nieuw vervolg") _ .Controls("vervolgitem1").Enabled = False ' Hiermee wordt de snelmenubalk Cel weergegeven. ' 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as. CommandBars("Cell").ShowPopup 200, 200End Sub
Opmerking Als u het uitgeschakelde item wilt inschakelen, stelt u de eigenschap
Enabled in op
True.
Terug naar beginEen besturingselement voor een vervolgmenuopdracht in een snelmenu verwijderen
In het volgende voorbeeld wordt de opdracht
Vervolgitem1 uit het vervolgmenu
Nieuw vervolg verwijderd:
Sub ShortcutSub_DeleteItem() CommandBars("Cell").Controls("Nieuw vervolg").Controls("vervolgitem1").Delete ' Hiermee wordt de snelmenubalk Cel weergegeven. ' 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as. CommandBars("Cell").ShowPopup 200, 200End Sub
Terug naar beginEen besturingselement voor een vervolgmenu in een snelmenu uitschakelen
Met de volgende voorbeeldcode wordt het vervolgmenu
Nieuw vervolg op de snelmenubalk
Cel uitgeschakeld:
Sub ShortcutSub_DisableSub() CommandBars("Cell").Controls("Nieuw vervolg").Enabled = False ' Hiermee wordt de snelmenubalk Cel weergegeven. ' 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as. CommandBars("Cell").ShowPopup 200, 200End Sub
Opmerking Als u het uitgeschakelde item wilt inschakelen, stelt u de eigenschap
Enabled in op
True.
Terug naar beginEen besturingselement voor een vervolgmenu uit een snelmenu verwijderen
Met de volgende voorbeeldcode wordt het vervolgmenu
Nieuw vervolg dat u hebt gemaakt op de snelmenubalk
Cel verwijderd:
Sub ShortcutSub_DeleteSub() CommandBars("Cell").Controls("Nieuw vervolg").Delete ' Hiermee wordt de snelmenubalk Cel weergegeven. ' 200, 200 verwijst naar de schermpositie in pixels als coördinaten op de x- en y-as. CommandBars("Cell").ShowPopup 200, 200End Sub
Terug naar beginMeer informatie
Als u meer informatie wilt over het aanpassen van menu's en menubalken in Excel, staan u de volgende bronnen ter beschikking.
Terug naar beginObjectenoverzicht
Het Objectenoverzicht bevat een complete lijst met alle eigenschappen en alle methoden voor een specifieke opdracht. Als u deze informatie wilt vinden, schakelt u over naar de Visual Basic-editor (druk op ALT+F11), klikt u op
Objectenoverzicht in het menu
Beeld (of drukt u op F2). Typ de naam van het besturingselement in het vak
Zoeken en druk op ENTER of klik op
Zoeken.
Terug naar beginMicrosoft Knowledge Base
De Microsoft Knowledge Base is een primaire informatiebron voor de support-professionals van Microsoft Product Support Services. De Microsoft Knowledge Base is ook beschikbaar voor klanten van Microsoft. Deze uitgebreide database bevat artikelen met gedetailleerde technische informatie over Microsoft-producten, gedocumenteerde correctielijsten, fouten in de documentatie en antwoorden op veelgestelde technische vragen.
U kunt de Microsoft Knowledge Base raadplegen door naar de volgende website van Microsoft te gaan en de instructies op deze pagina te volgen:
Terug naar begin