Symptomen
- De gebruiker wil een bestaande macro toevoegen aan het lint van Office 2007, 2010 of 2013.
- Een VBA ontwikkelaar zoekt de beste methode om macro’s beschikbaar te stellen.
Remedie
In Office 2007 is het voor een gebruiker niet mogelijk het lint aan te passen. In hogere versies kan dat wel op een gemakkelijke manier:
- Kies Bestand, Opties, Lint aanpassen.
- Maak in de rechter lijst een nieuw tabblad en een nieuwe groep.
- Kies boven de linker lijst eerst Macro’s uit de vervolgkeuzelijst.
- Voeg de gewenste macro toe aan de nieuwe groep met de knop Toevoegen. Herhaal indien nodig.
- Klik op OK om het venster te sluiten en het aangepaste lint te tonen.
Voor beide versies geldt dat het wel altijd mogelijk is de werkbalk Snelle toegang aan te passen. Hierin kunnen ook macro’s worden opgenomen.
Het toevoegen van macro’s aan het lint kan zowel in Office 2007 als 2010 gebeuren via de programmeermethode RibbonX (Ribbon Extensibility). Hierbij geeft u XML opdrachten aan de toepassing. Deze methode biedt onder andere de mogelijkheid eigen knopafbeeldingen te gebruiken, maar is alleen geschikt voor ontwikkelaars. De opties worden in de Verdieping nader besproken.
Verdieping
Behalve het lint kan een macro in Office 2007 altijd worden toegevoegd aan de werkbalk Snelle toegang. Het is een handige manier om één of enkele macro’s op een snel bereikbare plaats beschikbaar te stellen aan de gebruikers.
- Klik met de rechtermuisknop op de werkbalk Snelle toegang en kies Werkbalk Snelle toegang aanpassen.
- Kies boven de linker lijst eerst Macro’s uit de vervolgkeuzelijst.
- Voeg de gewenste macro(‘s) toe met de knop Toevoegen.
- Het is niet mogelijk de knopafbeelding te wijzigen. Wel kunt u een standaard afbeelding gebruiken en de naam aanpassen:
- Onder de rechter lijst is een knop Wijzigen verschenen. Interne opdrachten kunnen niet gewijzigd worden, macro’s wel. Klik op Wijzigen.
- Kies één van de standaard knopafbeeldingen.
- Pas de macronaam aan in het tekstvak, en klik op OK.
- Klik op OK om het venster te sluiten en de aangepaste werkbalk te tonen.
Custom UI Editor
RibbonX of Ribbon Extensibility is een programmeermethode waarmee ontwikkelaars het lint kunnen aanpassen. Het systeem is gebaseerd op Office Open XML documenten en gebruikt zelf ook XML om de onderdelen van het lint samen te stellen. RibbonX is niet bijzonder moeilijk en biedt grote voordelen ten opzichte van de oude methode van VBA code (de verzameling CommandBars). Maar het systeem is ook weer niet voor iedereen. Het is van groot voordeel als u een ontwikkelaar of vergevorderde Office specialist bent.
Voor het aanpassen van het lint kunt u het beste een gratis hulpprogramma gebruiken: de Office Custom UI Editor. Zoek hier even naar met Google of Bing en installeer de Office Custom UI Editor. Let op: er zijn verschillende versies van, dus zorg dat u die versie gebruikt waarvan hieronder afbeeldingen staan.
Waarschijnlijk wilt u macroknoppen toevoegen aan een sjabloon aanpassen.
- Open de Office Custom UI editor en kies File, Open om het juiste sjabloon te openen.
- Voeg de code in om een knop te maken. Plaats de macro’s bij voorkeur in een nieuw tabblad en in groepen, zie de code hieronder:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="Macros" label="Macro's" insertAfterMso="TabHome"> <group id="customGroup1" label="Test"> <button id="Test" label="Opslaan" imageMso="HappyFace" size="large" onAction="macTestmacro" screentip="Starten van de testmacro"/> </group> </tab> </tabs> </ribbon> </customUI>
De code maakt een nieuw tabblad met het label Macro’s, en plaatst dit tabblad na de standaard tab Start (in het Engels de tab Home):
<tab id=”Macros” label=”Macro’s” insertAfterMso=”TabHome”>
Een knop met het label Opslaan wordt ingevoegd. Voor kleinere knoppen gebruikt u de parameter size=”normal” van de opdracht button. In dit geval wordt de andere grootte-variant gebruikt, namelijk “large”:
size=”large”
De knop voert de volgende actie uit:
onAction=”macTestmacro”
De genoemde actie, of macro, bestaat nog niet. Deze maakt u in de VBA editor als volgt:
Sub macTestmacro (control As IRibbonControl) Application.Run "Testmacro" End Sub
In dit geval wordt een al in het sjabloon aanwezige macro Testmacro gestart. Hiervoor wordt de opdracht Application.Run gebruikt. Op deze manier kunt u bestaande macro’s toevoegen aan het lint zonder de Sub regel aan te hoeven passen.
Tips
- Om het lint ingrijpend aan te kunnen passen gebruikt u de Office Custom UI Editor.
- Gebruik voor Office 2007 of in een gemengde 2007/2010 omgeving de volgende XML beginregel:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”> - Gebruik voor Office 2010 de volgende XML beginregel:
<customUI xmlns=”http://schemas.microsoft.com/office/2009/07/customui”> - Voor professionele toepassingen kan het beter zijn een invoegtoepassing (add-in) te programmeren, bijvoorbeeld met Visual Studio 2010 of 2008.
- Met de parameter imageMso van de opdracht button kunt u één van de ingebouwde knoppen van de Office-applicatie gebruiken. Microsoft stelt een 2007 Office System Document: Lists of Control Ids beschikbaar. Maar u kunt ook de naam van een ingebouwde knop vinden door de werkbalk Snelle toegang aan te passen en de muis boven de gewenste opdracht te houden. Er verschijnt dan een tip met daarin de naam van de knopafbeelding.
Zie ook
Het lint aanpassen
Afbeeldingen op knoppen in het lint
Excel: Macro aan een werkbalkknop koppelen.