Formulierbesturingselementen/ActiveX-besturingselementen

In Excel hebben we een aantal besturingselementen die we kunnen toevoegen aan ons spreadsheet.
Deze besturingselementen zijn verdeeld in twee categorieën.
Je hebt de formulierbesturingselementen en je hebt de ActiveX-besturingselementen.
Formulierbesturingselementen gebruiken we wanneer we een macro willen toekennen aan een besturingselement.
ActiveX-besturingselementen gebruiken we wanneer we Visual Basic-code willen toevoegen aan een besturingselement.
In de versies 2007 en 2010 vinden we deze besturingselementen in het lint onder de knop “Invoegen” – tabblad “Ontwikkelaars”.

les07_image001

In eerdere versies vinden we deze terug in hun eigen werkbalk.
Hiervoor klik je de knop “Beeld” in de menubalk, kies je “Werkbalken” in het drop-downmenu, en klik je de werkbalk die je wenst te zien.

les07_image002

Al deze besturingselementen ga ik hier niet bespreken, maar toch een aantal. En vooral, ik zal je laten zien, wat het verschil is tussen een Formulierbesturingselement en een ActiveX-besturingselementen.

Laat ik eens beginnen met de meest gebruikte, de “knop”.

Knop

Het eerste voorbeeld is het formulierbesturingselement “Knop”.les07_image003
Zoals dus eerder gezegd, aan een formulierbesturingselement koppelen we een macro, dus gaan we eerst onze macro maken. Kan je ook na het tekenen van de knop, maar waarom het uitstellen.

Als voorbeeld heb ik een macro gemaakt die het document afdrukt.
Nu gaan we deze macro toepassen op de knop.
We selecteren het formulierbesturingselement “knop”, en tekenen een knop in het werkblad. Klik en sleep hiervoor in het werkblad.

les07_image004Wanneer je de muisknop los laat, verschijnt het venster “Macro toewijzen aan object”.
Selecteer de macro, en klik de knop OK.
Dit plaatst de knop in het werkblad:

les07_image005

Om de tekst te wijzigen in de knop, selecteer je deze tekst, en typ je de gewenste tekst.
Om de knop verder op te maken rechtsklik je deze, en kies je “Besturingselement opmaken”.
Dit opent het dialoogvenster “Besturingselement opmaken” waarin we 7 tabbladen vinden.

De meeste opties lijken me vanzelfsprekend, alleen kan ik je nog vertellen wanneer je de knop niet mee wil afdrukken, je het tabblad “Kenmerken” kiest, en het vinkje verwijdert voor de tekst “Object afdrukken”.

les07_image006
Het tweede voorbeeld is het ActiveX-besturingselement “Knop”.
We selecteren het ActiveX-besturingselement “knop”, en klikken slepen in het werkblad.
Laten we de muisknop los, zal dit niet het “Macro-venster” openen, en zal deze knop de tekst “CommandButton” krijgen.

les07_image007

Wanneer je een ActiveX-besturingselement tekent kom je automatisch in “Ontwerpmodus”.

Dit is ook nodig om wijzigingen aan te brengen aan dit besturingselement.
Wanneer “Ontwerpmodus” is geselecteerd, kun je elke wijziging aanbrengen aan de commando-knop.

Rechtsklik hiervoor de knop, en kies “Programmacode weergeven”.
Dit opent het venster “Visual Basic for Applications”.

Het venster VBA is standaard verdeeld in drie delen.
In het middelste deel, het grootste gedeelte, is waar we de VBA-code intypen.
Aan de linkerzijde hebben we het venster “Project” en het venster “Eigenschappen”.
Het venster “Project” toont ons elk werkblad (C), en elke werkmap (B) die zijn geopend in Excel.
Dubbelklik je zo’n, laat ik het object noemen, dan opent er een ander code-venster met alle code in die is toegevoegd aan dat object.
Het extra object “ThisWorkbook” (D), is wat je gebruikt wanneer je bv. een event handler wil toevoegen aan je werkmap. Bijvoorbeeld het automatisch opslaan van je werkmap wanneer je deze sluit. Maar dit is meer iets voor een cursus VBA.

Al deze vensters kun je sluiten door het kruisicoontje (A) te klikken in de linkerbovenhoek van het venster. Je kunt deze daarna terug openen door te klikken op de knop “Beeld” in de menubalk, en te kiezen voor “Programmacode” voor het codevenster, “Projectverkenner” voor het venster “Project”, en “Venster eigenschappen” voor, je raad het al, het venster “Eigenschappen”.

In het VBA-code-venster zie je de code Private Sub CommandButton1_Click()
Wat dit betekent is dat er in een subroutine een commando wordt toegekend aan de knop “CommandButton1”, wanneer deze wordt geklikt.
Het is “Private” omdat dit commando enkel toebehoort aan deze bepaalde knop.

les07_image008
In deze subroutine moet je nog wel een commando invoegen, anders gaat hij niet veel doen.
Als voorbeeld zal ik hetzelfde commando toevoegen dan dat ik in de “macro-knop” heb toegevoegd.
Namelijk het printen van het spreadsheet.
De VBA-code hiervoor is “Printout”.
Ik plaats deze code tussen het begin en het einde van de subroutine (1).
Alle VBA-code plaats je in subroutines, dat moet je onthouden.

Wat betreft het opmaken van een VBA-knop.
Deze is heel wat uitgebreider dan wat we kunnen doen met een macro-knop.
Al deze instellingen kun je wijzigen in het venster “Eigenschappen”.
Zo heb ik bijvoorbeeld de naam van de knop aangepast, de achtergrondkleur, de tekst (caption) in de knop, en het lettertype (Font).
Ben je klaar met de aanpassingen van de knop, sluit je het VBA-venster.

les07_image009

Wanneer je het voorbeeld bekijkt, zie je duidelijk het verschil tussen beide knoppen.

Wens je VBA-knop te testen, klik je nogmaals op de knop “Ontwerpmodus” zodat deze niet langer is geselecteerd.

Meer over Visual Basic in de volgende lessen.

les07_image010

Formidabel U hebt Les 7 voltooid START VOLGENDE LES