Het Excel bestandsformaat

Pagina's in dit artikel

  1. Werkblad gegevens
  2. Besturingselementen

Eigenschappen van besturingselementen van de formulieren werkset aanpassen

Omdat ik nieuwsgierig was naar de manier waarop Formulier controls in het Excel OpenXML bestandsformaat zijn opgenomen ben ik daar eens naar op zoek gegaan.

Demo bestand

Ik heb een klein bestandje gemaakt, met het volgende op Sheet1:

Enkele formulier besturingselementen op een Excel werkblad

Demo bestand met een paar Formulier besturingselementen

Waar zijn de Formulierbesturingselementen opgeslagen

Als je het xlsx bestand hernoemd naar ...xlsx.zip, dan kan je het zip pakket openen en erin rondneuzen. Open de map xl en vervolgens de map Worksheets. Open sheet1.xml. Bijna onderaan dat bestandje vind je deze informatie:

Een deel van het bestand sheet1.xml

Onderste deel van sheet1.xml, met de verwijzing naar de formulier besturingselementen geselecteerd.

Om te zien waarnaar rId2 verwijst moet je de _rels map openen:

De map _rels in een Excel zip bestand

Venster van geopende zip container met in beeld de map worksheets\_rels

Open het bestand sheet1.xml.rels en zoek naar rId2:

De waarde voor rId2 in de map worksheets/_rels

Het relevante deel in bestand sheet1xml.rels

Nu weet je dus dat we het volgende bestand op moeten zoeken: ..\xl\drawings\vmlDrawing1.vml.

VML bestanden

Voor ieder werkblad met formulier besturingselementen erop zal de zip container één vml bestand bevatten.

VML wordt beschreven als:

"Vector Markup Language (VML) is an XML-based exchange, editing and delivery format for high-quality vector graphics. VML facilitates the exchange and subsequent editing of vector graphics between a wide variety of productivity and design applications. VML is based on XML 1.0, which is an open, simple, text-based language for describing structured data. "

Formulier besturingselementen in een VML bestand.

Sleep het vml bestand vanuit verkenner naar de desktop en open de vml file vanaf je desktop.

Als je dit probeert met Internet explorer (omdat je de syntax kleuring en inspring opties van IE handig vindt), dan wacht je een onaangename verrassing: IE vraagt je of je het bestand wilt downloaden of opslaan. Dit sleept je in een oneindige lus, tenzij je voor annuleren kiest. Gelukkig is er een tool zoals "XML notepad" (gratis download), waarmee je de xml op verschillende manieren kan laten weergeven. Hier is die tool die het gedeelte toont van de checkbox:

xml notepad met ons bestand geopend

XML Notepad toont het (geformatteerde) xml gedeelte van een checkbox van de formulieren set op een Excel blad.

Hé! wat doet die font node daar? Meer dan 10 jaar al vertel ik mensen, dat je het lettertype van een checkbox van de formulieren besturingselementen niet kan veranderen. Kan het dan toch? Gewoon proberen!

Het lettertype van een checkbox veranderen (van de formulieren besturingselementen)

Opmerking (2013-01-15): Het lijkt er op, dat het gedrag van Excel is veranderd. Als je Excel 2010 gebruikt om een bestand te openen dat middels onderstaande truc is aangepast, dan wordt het lettertype van de checkbox niet langer beinvloed (wat eigenlijk wel logisch is, want je kon dit al niet aanpassen via de gebruikersinterface).

Schakel om naar de treeview tab van XML notepad (indien je die tool gebruikt) en bewerk de elementen "font face" en "size". Ik maakte er dit van:

<font face="Arial Black" size="320" .....

Laten we eens kijken wat dit met ons bestand heeft gedaan. Volg deze stappen:

Verrassing! De checkbox ziet er nu zo uit:

De nieuwe look van onze checkbox


Forms checkbox in Excel met aangepast lettertype

Laten we ons geluk eens proberen. Sla het bestand op als bestandstype Excel 97-2003. Probeer nu het bestand te openen in één van die Excel versies (Ik probeerde 2003). Gek genoeg werkt het nog ook!

De positie van een control veranderen

De positie van een control wordt bepaald door de "Anchor" node in de nodes die bij het control horen:

De Anchor node in de xml

XML uit het bestand vmlDrawing1.vml met de sectie betreffende afmetingen en positie geaccentueerd

Wat betekent dit? De eerste twee getallen geven aan waar de linker bovenhoek van het element zich bevindt op de horizontale as: de kolom (startend vanaf 0) en de verschuiving vanaf links ten opzichte van die kolom. De volgende twee getallen vertegenwoordigen het rijnummer (wederom startend met 0) en de verschuiving naar beneden (in pixels) vanaf de bovenkant van de rij. De volgende vier getallen doen hetzelfde voor de linker-benedenhoek.

Met andere woorden, in de xml code hierboven is de linkerbovenhoek van het besturingselement kolom E (de 1e 4 in de code), rij 3 (de eerste 2 in de code). Het element is 29 pixels (eerste 29 in de code) naar rechts verschoven en 0 (de eerste nul in de code) omlaag. De rechteronder hoek is cel I4, met een verschuiving naar rechts van 38 pixels en omlaag van 18, relatief ten opzichte van de linkerboven hoek van die cel.

Nou, dat is het dan. Ik hoop je een startpunt gegeven te hebben over hoe je met het nieuwe Excel 2007 Open XML bestandsformaat kunt werken.

Download

Je kan het bestand uit dit artikel hieronder downloaden:

FormControls.zipip



Vragen, suggesties of opmerkingen

Loading comments...