Door
Ron de Bruin, MVP
In Excel 2007 zijn de
Werkbladmenubalk en de
Werkbalken vervangen door het
Lint en de
Werkbalk Snelle Toegang. Alle bestanden die met VBA-code een aanpassing maakten in de Werkbladmenubalk of een werkbalk kunnen de oude menustructuur niet vinden in Excel 2007 en je zal daarom alle veranderingen vinden op het tabblad “Invoegtoepassingen“. Let op: Dit tablad is dan alleen zichtbaar.
Omdat dit niet zo’n fraai gezicht is gaan we in dit artikel uitleggen hoe we met behulp van XML een mooi menu op het Lint kunnen maken.
Let op: In dit artikel gebruik ik Excel als voorbeeld maar op een kleine aanpassing na is het ook te gebruiken voor alle andere Office-toepassingen.
Laten we beginnen!
De twee belangrijkste bestandsindelingen in Excel 2007 zijn
1: xlsx (kan geen macrocode opslaan)
2: xlsm (kan wel macrocode opslaan)
We openen een nieuw bestand in Excel 2007 en slaan het bestand op als
test.xlsm (met macro’s) en sluiten dit Excel bestand gelijk weer. We gebruiken dit bestand om de voorbeelden te testen.
Een Excel 2007 bestand is eigenlijk gewoon een zip-bestand. Om dat te laten zien gaan we de extensie
xlsm veranderen in
zip en openen we het zip-bestand. Er zijn ook Zip-programma’s die een Excel 2007-bestand kunnen openen als Zip zonder de extensie te veranderen.
Als je geen extensie achter je bestandsnamen ziet kan je dit in de Map opties veranderen.
-
Windows XP: Open een map en klik op
Extra,
Mapopties
-
Windows Vista: Open een map en klik op
Organiseren,
Map- en zoekopties
Vervolgens voor beide Windows-versies: vink op de tab
Weergave de optie “Extensies voor bekende bestandstypen verbergen” uit.

Dit is een schermafbeelding van de standaard in Windows Vista ingebouwde zip-funtie.
Als we een tab, groep of knop in het Lint willen maken dan moeten we in dit zip-bestand een nieuwe map gaan maken met een nieuw bestand met de XML om het Lint te veranderen en nog een aantal kleine aanpassingen.
Kortom: dit is veel te ingewikkeld om handmatig te doen dus we gaan een programma installeren en een aantal voorbeeld XML-bestanden die het ons een stuk makkelijker gaan maken.
Maar eerst sluiten we het zip-bestand en veranderen de extensie weer naar xlsm.
De Custom UI Editor Tool
We downloaden de Custom UI Editor Tool van
http://openxmldeveloper.org/articles/customuieditor.aspx. Pak het gedownloade bestand uit met een zip-programma en open of dubbelklik het OfficeCustomUIEditorSetup.msi bestand om het programma te installeren.
Belangrijk voor Windows XP gebruikers : Voordat je de Custom UI Editor gaat installeren: voer Windows Update uit, en onder Optionele Updates kies het .NET Framework 2 of 3. Na het installeren voer je Windows Update nog een keer uit om te ziet of er belangrijke updates voor het .NET Framework zijn.
Als we de Custom UI Editor openen zien we 5 menu knoppen:

Open : Open het Excel bestand waarvan je het Lint van wil veranderen.
Save : Opslaan van de XML in het bestand dat open is in de UI editor (opslaan is niet mogelijk als het bestand open is in Excel).
Insert Icons : Invoegen van de pictogrammen die je wilt gebruiken voor de knoppen in het bestand (de pictogrammen worden opgeslagen in het bestand). Niet alle indelingen worden ondersteund, jpeg bijvoorbeeld niet.
Validate : Controleer de XML op fouten.
Generate Callbacks : Maakt alle macro’s(callbacks) voor elke
onAction in je xml.Selecteer alle callbacks en kopieer ze in een standaard module in je bestand. Daarna kan je de code invoegen tussen de
Sub en de
End Sub regel in elke callback.
Voorbeelden
Download
dit zip-bestand met XML-bestanden die we in de de Custom UI Editor gaan gebruiken.
Sluit de de Custom UI Editor als het programma open is en unzip de bestanden in deze map:
C:\Program Files\CustomUIEditor\Samples
Als je een 64-bit machine hebt in deze map:
C:\Program Files (x86)\CustomUIEditor\Samples
De voorbeeld XML-bestanden
We openen de customUI editor en openen het bestand test.xlsm.
Let op: Het Excel-bestand mag niet open zijn in Excel als je de XML wil opslaan in het Excel bestand.
In het Sample-menu kiezen we het voorbeeld ”XL-Aangepast tabblad 1”. Als we nu op de knop
Opslaan drukken dan zal een nieuwe map met een bestand met de XML toegevoegd worden in het Excel-bestand.
Als je dat zelf wil controleren verander dan de extensie van test.xlsm in .zip en je ziet als je de zip opent dat er een map met de naam customUI is bijgekomen met daarineen bestand genaamd customUI.xml. Sluit het zip-bestand en verander de extensie weer terug in .xlsm voor dat je verder gaat.
We openen nu het test.xlsm bestand in Excel en zien dat er een nieuw tabblad (MijnTabblad) in het lint is bijgekomen met een aantal knoppen en een menu.
Op deze manier kan je alle voorbeelden die met XL beginnen in het Sample-menu proberen. Lees de groene regels in de XML zodat je weet wat je kunt verwachten als je de XML opslaat in het bestand.
Uitvoeren van een macro als je op een knop of menu-optie drukt
Als je de XML bekijkt zie je voor elke knop of optie in het menu een
onAction: onAction="Macro4"
Het formaat is simpel:
onAction = “De naam van de macro die je wilt uitvoeren als je op de knop of menu optie klikt”
In voorgaande Excel versies gebruik je:
Sub Macro4()
...
End Sub
Maar in Excel 2007 gebruik je dit:
Sub Macro4(control As IRibbonControl)
...
End Sub
Tip: Gebruik de Generate Callbacks knop in de Custom UI editor. Selecteer alle callbacks en kopieer ze in een standaard module in je bestand. Daarna kan je de code invoegen tussen de
Sub en de
End Sub regel in elke callback. Gebruik een simpele
MsgBox in elke callback om de knoppen en menu opties te testen.
Sub Macro4(control As IRibbonControl)
MsgBox "Macro4"
End Sub
Waar vind ik de namen van de idMso’s en imageMso’s ?
In de voorbeelden zie je dat we idMso gebruiken voor de naam van een ingebouwd tabblad, groep of knop, en we gebruiken imageMso om een ingebouwd Office-pictogram te gebruiken voor een knop.
Op
deze pagina kan je een aantal bestanden downloaden die heel erg nuttig zijn bij het zoeken van de juiste idMso of imageMso, zie met name nummers 3 en 4. Een Excel-werkboek met alle Office-pictogrammen vind je
hier.
Conclusie
Het Lint is een hele verandering in Excel 2007 en het zal voor elke ontwikkelaar tijd kosten om het allemaal onder de knie te krijgen. In dit artikel hebben we een eerste stap gemaakt en dit zal de basis zijn voor het aanpassen van het Lint voor Office toepassingen.
Meer Informatie
Op
deze pagina staan een aantal links in het “More Information” gedeelte die ik regelmatig update.
Tip voor een menu voor macro’s die je wilt gebruiken in al je open bestanden.