Inhoudsopgave:
- Voordat u begint met het schrijven van code
- De juiste objectmodellen laden
- Verwijzingen naar andere programma's instellen
Video: Formulier maken met Excel 2016 (1) 2024
Visual Basic for Applications (VBA) is geen programmeertaal alleen voor Microsoft Access 2003. Het is een programmeertaal voor alle toepassingsprogramma's die automatisering ondersteunen. Automatisering (met een hoofdletter A ) verwijst naar het vermogen van een programma om programmatisch te worden gemanipuleerd of automatisch te worden beheerd met behulp van een programmeertaal zoals VBA. Alle belangrijke toepassingen in Microsoft Office, waaronder Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint en Microsoft Word, ondersteunen automatisering. U kunt code schrijven om gegevens automatisch met hen te delen.
De termen Component Object Model ( COM ) en OLE automation zijn oudere termen voor (maar zijn in feite synoniem met) wat is momenteel de naam Automation.
Voordat u begint met het schrijven van code
Voordat u gegevens uitwisselt tussen Access en andere programma's in Microsoft Office Suite, moet u er rekening mee houden dat het schrijven van code om de klus te klaren, zelden nodig is. U kunt veel gegevens importeren en exporteren tussen Microsoft Office-toepassingen zonder een code te schrijven. U kunt bijvoorbeeld de volgende acties uitvoeren:
- Gegevens importeren en exporteren met behulp van opties in het menu Bestand openen.
- E-mail Toegang tot objecten, zoals rapporten, door Verzenden naar -> E-mailontvanger te kiezen.
- Gebruik de OfficeLinks-functie om objecten naar andere programma's te verzenden.
- Gebruik de standaard Windows-knip-en-plaktechnieken en OLE (Object Linking and Embedding) om gegevens tussen programma's te kopiëren en te koppelen.
- Gegevens uit Access-tabellen samenvoegen naar Microsoft Word-brieven, labels, enveloppen of andere rapporten met behulp van de functie Afdruk samenvoegen. (Zoek in het Help-systeem van Word naar samenvoegen. )
Als u alleen op zoek bent naar gegevens van Access naar een ander programma (of omgekeerd), is het schrijven van code waarschijnlijk niet de gemakkelijkste methode. Elk van de eerdere benaderingen is eenvoudiger dan het schrijven van aangepaste VBA-code om het werk te doen.
Natuurlijk, eens in een spreekwoordelijke blauwe maan kom je een situatie tegen waarin het schrijven van VBA-code de enige of misschien wel de beste manier is om de klus te klaren. Dit artikel bevat enkele basisbegrippen die u wilt begrijpen.
De juiste objectmodellen laden
Het Access-objectmodel biedt een manier om naar objecten te verwijzen op naam, zodat u die objecten kunt manipuleren met behulp van VBA-code. Elk Office-toepassingsprogramma dat zichzelf blootstelt aan VBA heeft een objectmodel, net zoals Access dat doet.Nadat de objectbibliotheek van een toepassingsprogramma beschikbaar is, kunt u VBA gebruiken om die toepassing te besturen.
Een -objectmodel definieert de namen en organisatie van objecten in de toepassing. Een objectbibliotheek is het eigenlijke bestand dat op uw harde schijf is opgeslagen en definieert dat conceptuele objectmodel.
Voordat u code schrijft om een externe toepassing vanuit Access te beheren, moet u de juiste objectbibliotheek laden in het dialoogvenster Verwijzingen in Access. Volg deze stappen:
1. Zorg ervoor dat u zich in de Visual Basic-editor bevindt.
Druk op Alt + F11 als u zich in het programmavenster Toegang bevindt.
2. Kies Extra -> Verwijzingen in het menu Visual Basic Editor.
Het dialoogvenster References wordt geopend.
3. Blader door de lijst Beschikbare verwijzingen en selecteer de objectbibliotheken voor de programma's die u wilt besturen.
In figuur 1 zijn de geselecteerde objectbibliotheken voor toegang, Excel, Outlook, PowerPoint en Word (onder andere).
Afbeelding 1: Verschillende objectbibliotheken geselecteerd in het dialoogvenster Verwijzingen.
4. Klik OK.
Alle geselecteerde objectbibliotheken worden geopend en vanaf dit punt hebt u toegang tot al hun objectmodellen.
Objectbibliotheken ontladen
Het laden van meer objectbibliotheken dan nodig is verspilling, omdat VBA-programma's langzamer werken. In het echte leven hoeft u zelden alle beschikbare objectbibliotheken te selecteren (zie Afbeelding 1), tenzij u echt van plan was om met al die programma's te werken vanuit de huidige database.
U kunt bibliotheken net zo gemakkelijk laden als u ze laadt. Open het dialoogvenster Verwijzingen en wis het vinkje naast een objectbibliotheek die u niet echt van plan bent te gebruiken.
Het objectmodel van een programma verkennen
De objectbrowser in de Visual Basic-editor biedt toegang tot alle objectmodellen die momenteel zijn geselecteerd in het dialoogvenster Verwijzingen. Elk geladen objectmodel bevat veel objecten, klassen, eigenschappen en dergelijke. Maar voor automatisering wilt u vooral het toepassingsobject van elk programma bekijken. Het Access Application Object stelt bijvoorbeeld de toegang tot andere programma's ter ondersteuning van automatisering bloot. Het Excel-toepassingsobject (opgenomen in de Excel-objectbibliotheek) legt Excel bloot aan andere automatiseringsprogramma's, enzovoort.
Als u de Objectbrowser in de VBA-editor wilt openen, kiest u Weergave -> Objectbrowser of drukt u op F2. Als u hulp bij een item in de Objectbrowser wilt, klikt u op de naam ervan en klikt u vervolgens op de knop Help (?) Op de werkbalk Objectbrowser.
Wanneer u kiest uit de lijst Project / Bibliotheek in de Object Brower en naar beneden in de klassenlijst in de linkerkolom bladert, ziet u verschillende toepassingsobjecten. Wanneer u op een van de toepassingsobjecten klikt, verschijnt de naam van de toepassing onderaan in het dialoogvenster. Leden van dat toepassingsobject verschijnen in het venster aan de rechterkant, zoals weergegeven in Afbeelding 2.
Afbeelding 2: De Objectbrowser na het toevoegen van meerdere objectbibliotheken.
Verwijzingen naar andere programma's instellen
Wanneer objectmodellen zijn geladen, kunt u beginnen met het instellen van verwijzingen naar beschikbare programma's in VBA-code.De eerste stap is om een Dim-instructie te gebruiken om een objectvariabele te maken die verwijst naar de toepassing waarmee u verbinding wilt maken, met behulp van de volgende syntaxis:
Dim anyName As [New] -programma. Toepassing
In de syntaxis is anyName elke gewenste naam die in uw code moet worden gebruikt om naar de toepassing te verwijzen. Het -programma -argument is de officiële naam van het automatiseringsprogramma. Het nieuwe trefwoord is optioneel. Indien opgenomen, opent het trefwoord Nieuw een kopie van de toepassing op de achtergrond (niet noodzakelijk zichtbaar op het scherm) voordat de code wordt uitgevoerd.
Enkele voorbeelden van Dim-instructies zijn de volgende:
Dim appExcel als nieuw Excel. Toepassing
Dim appOutlook als nieuw Outlook. Toepassing
Dim appPowerPoint als nieuw PowerPoint. Toepassing
Dim app Word als nieuw woord. Toepassing
Een Dim-instructie is alleen geldig als de juiste objectbibliotheek is geladen. Bijvoorbeeld de Dim app Word als nieuw woord. De toepassingsinstructie mislukt als de objectbibliotheek voor Microsoft Word niet is geselecteerd in het dialoogvenster Verwijzingen.
De Dim-opdrachten maken alleen objectvariabelen die verwijzen naar de toepassing vanuit uw code. Als u de verbinding met het toepassingsobject van een toepassing daadwerkelijk wilt maken, moet u de naam van de objectvariabele instellen op de toepassing. De syntaxis is
ObjectVariabel instellen als CreateObject ("appName. Toepassing")
waarbij objectVariable gelijk is aan de naam die u hebt opgegeven in de instructie Dim en appName is de naam van het applicatieprogramma. Verwijzend naar de eerdere Dim-instructies zijn de Set-instructies die u voor elke gedefinieerde objectvariabele gebruikt:
Set appExcel = CreateObject ("Excel-toepassing")
Set appOutlook = CreateObject ("Outlook-toepassing")
Stel appPowerPoint = CreateObject in ("PowerPoint-toepassing")
Stel appWord = CreateObject ("Word-toepassing") in
Elke toepassing in de Office-suite heeft een eigen objectmodel met eigen objecten en eigenschappen, maar de basisideeën zijn hetzelfde ongeacht welk programma en objectmodel u gebruikt.