Most Valuable Professional


View Jan Karel Pieterse's profile on LinkedIn subscribe to rss feed
Subscribe in a reader

Subscribe to our mailing list

* indicates required

Bestand crasht Excel!!

Red mijn werkmap!
De beste tool voor Excel bestanden met problemen.

Cursussen

Excel VBA Masterclass (Engels)
Excel VBA voor Financials

Third party tools

Speed up your file

FastExcel
The best tool to optimise your Excel model!

Repair your file

Stellar Phoenix Excel Repair
Best tool to repair corrupt Excel sheets and objects
Home > Nederlandse site > Artikelen > Excel 2007 bestandsformaat > Besturingselementen
This page in English

Het Nieuwe Excel 2007 bestandsformaat

Eigenschappen van besturingselementen van de formulieren werkset aanpassen

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

Demo bestand

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



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:



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:



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

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



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.

in de Open XML specificatie zoals beschikbaar bij ecma (zoek naar "mark up language reference"), wordt VML 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 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). Open je het bestand met Excel 2003, dan gebeuren er nog vreemdere dingen. Ik kreeg een extra checkbox (wel met Courier new als lettertype) op het werkblad nadat ik de Font naam in het VML bestand wijzigde naar 'Courier New' en vervolgens het bestand opende in Excel 2003.

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:


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:



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 en opmerkingen

Al het commentaar over deze pagina:


Comment by: andries (3/9/2010 12:14:34 PM)

Beste,

Ik zoek een manier om in Excel 2007 in een formulier een deel van een spreadsheet weer te geven. In Excel 2003 was er de Additional control "Microsoft Office Spreadsheet 11.0", maar in Excel 2007 is die er niet meer en het lijkt erop dat er ook geen alternatieve Additional Control is?

Al erg bedankt voor uw hulp!

 


Comment by: Jan Karel Pieterse (3/9/2010 10:20:24 PM)

Hallo Andries,

Helaas zijn er geen "Office Web Components" gemaakt bij Excel 2007, dus zit je met een probleem als je die gebruikte.
Je zou een lege grafiek kunnen gebruiken met daar bovenop een plaatje van een bereik. Vervolgens exporteer je de grafiek naar een afbeeldingsbestand en toon je die afbeelding op je formulier.

 


Comment by: Jo Dekeyster (5/28/2010 5:56:04 AM)

Het is me onmogelijk om de besturingselementen te activeren in Excel 2007;
het vakje invoegen van een besturingselement blijft GRIJS
(dus niet actief)
hoe kan ik dit aub opnieuw activeren ?

van harte bedankt voor uw info hierover

 


Comment by: Jan Karel Pieterse (5/28/2010 6:34:29 AM)

Hallo Jo,

Kan het zijn dat het werkblad beveiligd is?

 


Comment by: Ton Lameijer (12/6/2013 12:16:59 AM)

Hallo,
Ik ben een leek, dus keep it simpel. mijn probleem:ik heb in een cel pics geplaatst met behulp van opmerkinginvoegen/opmaken/opvuleff/afbeelding et. Nu verdwijnt in het ene excelbestand de pic niet en in een ander bestand wel, met de volgende opmerking:

Verwijderd onderdeel: /xl/drawings/vmlDrawing1.vml-onderdeel. (Tekenvorm)

De excel versie is 2010
Wat doe ik verkeer? Graag hulp en alvast bedankt

Ton Lameijer

 


Comment by: Jan Karel Pieterse (12/6/2013 12:03:35 PM)

Hallo Tom,

Het lijkt erop dat Excel 2010 die plaatjes in commentaren niet accepteert. Er zit dus mogelijk ergens een corruptie in het bestand. Daar is weinig tegen te doen ben ik bang.

 


Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: www.eileenslounge.com.

Uw naam (verplicht veld):

Uw e-mail adres (Niet verplicht, dit adres wordt niet getoond)

Uw verzoek of commentaar:

Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].