 |  |  | | Basiscursus Visual Basic for Applications - deel 1 |  |
|
Met Office is meer mogelijk dan wat de applicaties standaard bieden. Office is namelijk een omgeving die u geheel naar uw hand kunt zetten met de VBA-programmeertaal.
Stap voor stap wordt in deze cursus beschreven hoe u in alle versies van Word een dialoogvenster bouwt compleet met tekstvakken en knoppen.
|
Gerelateerde training
|
|  |
| |  |  |  |
 |
 |  |  | Nieuwe functies |  | Word en de andere Office-applicaties zijn rijk bedeeld met functies. Toch kan het zijn, dat u bepaalde functies mist of dat u veel handelingen moet verrichten om een bepaalde taak uit te voeren. In die gevallen komt de Visual Basic for Applications programmeeromgeving van Office u te hulp. In die omgeving bouwt u applicaties op maat, om binnen Word en de andere Office-applicaties efficiënter te kunnen werken. U maakt dialoogvensters op maat, afgestemd op de processen binnen uw organisatie, u legt koppelingen tussen documenten, u automatiseert tijdrovende procedures enzovoort. In deze cursusreeks wordt stap voor stap beschreven hoe u een Word-dialoogvenster maakt met een aantal tekstvakken en knoppen.
Zodra de tekstvakken zijn ingevuld klikt u op de OK-knop en worden de ingevulde gegevens naar het document gekopieerd. U kunt zich voorstellen dat dit voor bepaalde documenten een plezierige manier van werken is: immers, u of een andere gebruiker hoeft niet in het document te typen, maar kan allerlei variabele gegevens, die meestal her en der over het document verspreid staan, overzichtelijk in een dialoogvenster invullen. Hiermee is deze oplossing een welkom alternatief voor bekende functies, zoals het Word-formulier.
|
|
|  |
 |
 |  |  | Macro |  | Voordat hieraan begonnen kan worden is eerst enige basiskennis van macro's nodig. Een macro is in principe een verzameling opdrachten. Telkens wanneer die opdrachten opnieuw moeten worden uitgevoerd, hoeft u alleen maar de macro opnieuw te starten. Zoals een Word-macro die een regel vet zet; zo'n macro is handig voor titels en tussenkopjes in uw tekst. Voordat die macro kan worden gebruikt, moet hij eenmalig worden opgenomen: al uw opdrachten worden tijdens de macro-opname geregistreerd en vastgelegd voor reproductie.
- Start Word en inventariseer eerst welke opdrachten nodig zijn voor het vet zetten van de regel.
- In het documentvenster van Microsoft Word typt u een regel tekst, bijvoorbeeld de titel "Regel vet zetten met de hand".
- Klik ergens midden in de regel en start de macro-opname met Extra >> Macro >> Nieuwe macro opnemen. Geef de macro een naam, bijvoorbeeld Regelvet.
- Verplaats de cursor naar het begin van de regel en selecteer de regel tot het einde met Shift+End.
- Klik nu op de Vet-knop of druk op Ctrl+B.
- Druk op de End-toets om de selectie op te heffen. Regel 1 is nu vet gezet.
- De macro-opname kan worden gestopt. Klik daartoe in het venstertje Opname op de vierkante knop Opname stoppen.
Om te onderzoeken of het goed gegaan is moet u de macro nu afspelen: typ een derde regel "Regel vet zetten met macro" en kies Extra >> Macro >> Macro's. Zoek in de lijst onder Macronaam de naam van de macro op (RegelVet), klik erop en klik op Uitvoeren (Run). Als alles goed gaat wordt nu ook de derde titelregel vet gezet. Dit kan sneller: typ weer een regel, bijvoorbeeld "Regel vet maken met Alt+F8", klik ergens in de regel, druk op sneltoets Alt+F8 (Macro uitvoeren) en dubbelklik in de lijst op de macronaam Regelvet. Dit zijn nog steeds twee handelingen, maar het kan ook met één.
|
|
|  |
 |
 |  |  | VBA |  | Om te zien hoe de macro Regelvet er in VBA uitziet, kiest u Extra (Tools) >> Macro >> Visual Basic Editor. Handiger is het gebruik van de sneltoets Alt+F11; daarmee schakelt u namelijk snel heen en weer tussen document en VBA-editor. Probeer dit zelf uit, dus druk een paar maal op Alt+F11, het is een sneltoets die u in de toekomst vaak zult gebruiken.
In het VBA-scherm ziet u links op het scherm het venster van de Projectverkenner, waarin de naam van de standaardsjabloon Normal vermeld staat en de namen van alle momenteel geopende documenten, in dit verband aangeduid als Projecten, zoals Documentx. Dubbelklik op Normal en op Documentx, zodat eronder mapjes of pictogrammen verschijnen. Als er mapjes verschijnen opent u het mapje Modules. Een macro wordt in VBA een Procedure genoemd en komt terecht in de module NewMacros van Normal of (als Normal.dot met een wachtwoord beveiligd is door de systeembeheerder) van het project Documentx (zie afbeelding). Dubbelklik op de desbetreffende NewMacros. Rechts op het scherm verschijnt de inhoud van alle procedures, die in NewMacros aanwezig zijn, waaronder:
- Sub Regelvert()
- '
- ' Regelvet()
- ' Regelvet Macro
- '
- Macro opgenomen op 31 12 05
- Selection.HomeKey Unit:=wdLine
- Selection.EndKey Unit:=wdLine, Extend:=wdExtend
- Selection.Font.Bold = wdToggle
- Selection.EndKey Unit:=wdLine
|
Een procedure begint met Sub, gevolgd door de naam van de procedure, dus Regelvet. Groene regels die beginnen met een apostrof geven alleen informatie en hebben geen betekenis voor de macro. De volgende vier regels vertegenwoordigen elk een van de vier uitgevoerde opdrachten:
- regel 6 staat voor het drukken op de Home-toets,
- regel 7 voor het selecteren van de regel tot en met het eind (End),
- regel 8 voor het kiezen van vet schrift en
- regel 9 voor het opheffen van de selectie door middel van End.
De procedure eindigt met de opdracht End Sub. Ertussen staat een automatisch geplaatste horizontale streep.
|
|
|  |
 |
 |  |  | Macro's bewerken |  | De Regelvet-macro is maar een simpel voorbeeld. Krachtige macro-toepassingen worden niet opgenomen, maar direct getypt en bewerkt in de VBA-editor. Zo is de macro Regelvet uit te breiden door er een regel aan toe te voegen die de regel vet én cursief (of 'italic') maakt. Tussen regel 8 en 9 voegt u de volgende regel in:
Selection.Font.Italic = wdToggle
Controleer of dit werkt: keer terug naar het document met Alt+F11, typ onderaan het document een nieuwe titel en start de macro.
|
|
|  |
 |
 |
 |
 |  |  | Projectverkenner en Eigenschappen |  | Links op het scherm staat de Projectverkenner, daaronder het venster Eigenschappen. Mist u een of beide vensters op uw scherm kies dan Beeld >> Projectverkenner en/of Beeld >> Venster Eigenschappen om ze op te roepen. De Projectverkenner laat de namen zien van alle momenteel geopende projecten: in ieder geval zijn dat Normal en Offerte.
- Rechtsklik op de vermelding Project(Offerte) en kies Invoegen >> UserForm.
Prompt verschijnt rechts een grijs venster met formaatgrepen (zie afbeelding). Met die formaatgrepen kunt u het venster groter en kleiner maken. De standaardafmeting is echter groot genoeg, dus dat is niet nodig. Voorlopig draagt het dialoogvenster de titel UserForm1.
|
|
|  |
 |
 |  |  | Werkset |  | De besturingselementen die toegevoegd moeten worden zijn twee tekstvakken, twee bijschriften en twee knoppen. Deze besturingselementen zijn op te halen uit het Werkset-venster (zie afbeelding).
- Staat dat niet op het scherm kies dan Beeld >> Werkset. Begin met de bijschriften.
- Klik in het Werkset-venster op Bijschrift en verplaats de muisaanwijzer naar het nog lege UserForm1.
- Merk op dat de muisaanwijzer de vorm heeft aangenomen van een kruis met daarnaast de letter A: deze vorm geeft aan dat u bezig bent met het plaatsen van een bijschrift. Positioneer het kruis ongeveer 3 mm uit de linker bovenhoek, klik en sleep de muisaanwijzer naar rechts en omlaag tot hij op het oog ongeveer 0,5 cm hoog en 2,5 cm lang is. Laat de muisknop nu los.
- Het grijze bijschriftvak is nu getekend en nog omgeven door formaatgrepen. Controleer linksonder in het venster Eigenschappen of de afmetingen kloppen: Height=15 (hoogte) en Width=70 (breedte). Dit zijn afmetingen in zetpunten (72 zetpunten zijn gelijk aan 2,54 cm). Klik en versleep de formaatgrepen om de afmetingen bij te stellen. Is het bijschriftvak in orde klik dan ergens in het grijs om de formaatgrepen uit te zetten.
- Klik weer kort op Bijschrift in het Werkset-venster en voeg op dezelfde wijze nog een bijschriftvak toe. Plaats dit tweede bijschriftvak circa 2 mm onder het eerste en maak het even groot.
|
|
|  |
 |
 |
 |  |  | Tekstvakken |  | Achter elk bijschrift hoort een Tekstvak. Klik ergens in het grijs van het UserForm1 om het venster Werkset weer te voorschijn te halen.
- Klik hierin op Tekstvak (ab|) en verplaats de muisaanwijzer naar UserForm1. De vorm van de muisaanwijzer is nu een kruis met daarbij de letters ab.
- Klik rechts van het bijschrift Datum en sleep de muisaanwijzer naar rechts en omlaag tot een wit vak van ongeveer 0,5 cm hoog en 4 cm breed is ontstaan.
- Controleer deze afmetingen in het Venster Eigenschappen bij Height en Width.
- Het tweede tekstvak kunt u op dezelfde manier maken, maar slimmer is om het eerste tekstvak te kopiëren: terwijl de formaatgrepen nog aan het Tekstvak zitten, drukt u op Ctrl+C (Kopiëren).
- Druk daarna op Ctrl+V (Plakken), klik in het nieuwe Tekstvak en sleep het vlak onder het eerste Tekstvak, rechts van Offertenummer.
Vergeet niet tussentijds regelmatig Bestand >> Opslaan te kiezen of op Ctrl+S te drukken om de sjabloon Offerte inclusief het UserForm1 te bewaren. Dit tussentijds bewaren is een voorzorgsmaatregel, voor het geval er iets mis mocht gaan (PC-storing, stroomuitval enzovoort).
|
|
|  |
 |
 |
 |  |  | Dialoogvenster openen |  | Hoe weet Word nu, wanneer dit dialoogvenster getoond moet worden? Daartoe maakt u een macro, die u toekent aan een knop in de werkbalk. De macro krijgt de naam OpenVenster (een andere naam mag ook) en wordt als module aan het project Offerte toegevoegd. Rechtsklik daarom in het venster Project op Project(Offerte) en kies Invoegen >> Module. U ziet dat onder Project(Offerte) is toegevoegd Module1. Dubbelklik hierop. De cursor knippert nu rechts in een leeg scherm. Macro's beginnen altijd met Sub gevolgd door de macronaam en twee haakjes; denk maar aan het eerdere voorbeeld Sub Regelvet(). Typ daarom de volgende regel over:
Sub OpenVenster()
Druk op Enter. Automatisch wordt de afsluiting van de macro toegevoegd:
Sub OpenVenster()
End Sub
Daartussen typt u de macroregels. Het gaat erom dat het dialoogvenster UserForm1 zich moet vertonen, in het Engels heet dat Show. De complete macro wordt:
Sub OpenVenster()
UserForm1.Show
End Sub
VBA probeert u zoveel mogelijk te helpen. U zag dat al met de automatische toevoeging van End Sub. Ook nadat u UserForm1 hebt getypt met daarachter een punt wordt u geholpen: u krijgt namelijk een lijst te zien van alle opdrachten die na UserForm1 zouden kunnen volgen. Show staat daar ook tussen. U kunt dit woordje desgewenst opzoeken in de lijst en erop klikken, maar u mag ook gewoon verder typen. Zodra u na Show een spatie typt verdwijnt de lijst.
|
|
|  |
 |
 |  |  | Test |  | Controleer of dit werkt. Bewaar uw werk met Ctrl+S en keer terug naar Word met Alt+F11.
- Start de macro met Extra >> Macro >> Macro's of met Alt+F8.
- Is het overzicht macronamen erg lang, klik dan bij Macro's in op Offerte.doc. Het venster laat dan alleen de macro's zien van het huidige project.
- Klik op OpenVenster >> Uitvoeren.
Prompt verschijnt het dialoogvenster in beeld, compleet met titel en bijschriften. U kunt zelfs al gegevens invullen en met de Tab-toets langs de verschillende velden en knoppen gaan. Als u echter op de knop OK of Annuleren klikt gebeurt er niets.
Werkt het niet, open dan de hier te downloaden sjabloon offerte.doc met daarin het hier besproken dialoogvenster en de macro Openvenster. Zoek in de VBA-editor wat hierin anders is dan in uw versie en kom er zo achter wat er bij u fout is gegaan.
|
|
|  |
|
 | |