Visual Basic for Applications (VBA) er ikke et programmeringsspråk for Microsoft Access 2003 alene. Det er et programmeringsspråk for alle applikasjonsprogrammer som støtter automatisering. Automatisering (med stor A ) refererer til muligheten til et program til å bli manipulert programmatisk, eller kontrollert automatisk ved hjelp av et programmeringsspråk som VBA. Alle de store programmene i Microsoft Office, inkludert Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint og Microsoft Word støtter automatisering. Du kan skrive kode for automatisk å dele data mellom dem.
Begrepene Component Object Model ( COM ) og OLE-automatisering er eldre begreper for (men er i utgangspunktet synonyme med) det som i dag kalles automatisering.
Før du begynner å skrive kode
Før du utveksler data mellom Access og andre programmer i Microsoft Office Suite, vær oppmerksom på at det sjelden er nødvendig å skrive kode for å utføre jobben. Du kan gjøre mye av å importere og eksportere data mellom Microsoft Office-applikasjoner uten å skrive noen kode i det hele tatt. Du kan for eksempel utføre følgende handlinger:
- Importer og eksporter data ved å bruke alternativene på Access File-menyen.
- E-post Få tilgang til objekter, for eksempel rapporter, ved å velge Send til –> E-postmottaker.
- Bruk OfficeLinks-funksjonen til å sende objekter til andre programmer.
- Bruk grunnleggende Windows klipp-og-lim-teknikker og OLE (Object Linking and Embedding) for å kopiere og koble data mellom programmer.
- Slå sammen data fra Access-tabeller til Microsoft Word-brev, etiketter, konvolutter eller andre rapporter ved å bruke funksjonen for utskriftsfletting i Word. (Søk i Word-hjelpesystemet for sammenslåing. )
Hvis du bare er ute etter å få data fra Access til et annet program (eller omvendt), er det sannsynligvis ikke den enkleste tilnærmingen å skrive kode. Enhver av de tidligere tilnærmingene er enklere enn å skrive tilpasset VBA-kode for å gjøre jobben.
Selvfølgelig, en gang i en velkjent blåmåne, kommer du over en situasjon der å skrive VBA-kode er den eneste, eller kanskje bare den beste, måten å få jobben gjort. Denne artikkelen viser deg noen grunnleggende konsepter som du ønsker å forstå.
Laster de riktige objektmodellene
Access-objektmodellen gir en måte å referere til objekter ved navn, slik at du kan manipulere disse objektene ved å bruke VBA-kode. Alle Office-applikasjoner som utsetter seg for VBA har en objektmodell, akkurat som Access gjør. Etter at et applikasjonsprograms objektbibliotek er tilgjengelig, kan du bruke VBA til å kontrollere applikasjonen.
En objektmodell definerer navn og organisering av objekter i applikasjonen. Et objektbibliotek er den faktiske filen som er lagret på harddisken din og definerer den konseptuelle objektmodellen.
Før du skriver kode for å kontrollere en ekstern applikasjon fra Access, må du laste inn riktig objektbibliotek i Referanser-dialogboksen i Access. Følg disse trinnene:
1. Sørg for at du er i Visual Basic Editor.
Trykk Alt+F11 hvis du er i Access-programvinduet.
2. Velg Verktøy –> Referanser fra Visual Basic Editor-menyen.
Dialogboksen Referanser åpnes.
3. Bla gjennom listen Tilgjengelige referanser og velg objektbibliotekene for programmene du vil kontrollere.
I figur 1 er de valgte objektbibliotekene for Access, Excel, Outlook, PowerPoint og Word (blant andre).
Figur 1: Flere objektbiblioteker valgt i dialogboksen Referanser.
4. Klikk OK.
Alle de valgte objektbibliotekene vil bli åpnet, og du har tilgang til alle objektmodellene deres fra dette tidspunktet.
Laster ut objektbiblioteker
Å laste inn flere objektbiblioteker enn nødvendig er bortkastet fordi VBA-programmer kjører tregere. I det virkelige liv trenger du sjelden å velge alle tilgjengelige objektbiblioteker (se figur 1) med mindre du virkelig hadde tenkt å samhandle med alle disse programmene fra den gjeldende databasen.
Du kan laste ned biblioteker like enkelt som du laster dem. Åpne dialogboksen Referanser og fjern haken ved siden av ethvert objektbibliotek du egentlig ikke har tenkt å bruke.
Utforske et programs objektmodell
Objektleseren i Visual Basic Editor gir tilgang til alle objektmodellene som er valgt i dialogboksen Referanser. Hver lastet objektmodell inneholder mange objekter, klasser, egenskaper og slikt. Men for automatisering vil du hovedsakelig se på hvert programs Application Object. For eksempel utsetter Access Application Object Access for andre programmer som støtter automatisering. Excel-applikasjonsobjektet (inneholdt i Excel-objektbiblioteket) eksponerer Excel for andre automatiseringsprogrammer og så videre.
For å åpne objektleseren i VBA Editor, velg Vis –> Objektleser eller trykk F2. For å få hjelp med et element i objektleseren klikker du på navnet og klikker deretter Hjelp-knappen (?) på verktøylinjen i objektleseren.
Når du velger fra Prosjekt/Bibliotek-listen i Objektleseren og blar nedover Klasser-listen i venstre kolonne, ser du flere applikasjonsobjekter. Når du klikker på et av applikasjonsobjektene, vises navnet på applikasjonen nederst i dialogboksen. Medlemmer av det applikasjonsobjektet vises i ruten til høyre, som vist i figur 2.
Figur 2: Objektleseren etter å ha lagt til flere objektbiblioteker.
Sette referanser til andre programmer
Med objektmodeller lastet er du klar til å begynne å sette opp referanser til tilgjengelige programmer i VBA-kode. Det første trinnet er å bruke en Dim-setning til å lage en objektvariabel som refererer til applikasjonen du vil koble til, ved å bruke følgende syntaks:
Dim anyName Som [Nytt] program.Application
I syntaksen er anyName et hvilket som helst navn du liker, som skal brukes i koden din for å referere til applikasjonen. Den programmet argumentet er det offisielle navnet på automatisering program. Nytt nøkkelord er valgfritt. Hvis inkludert, åpner Nytt nøkkelord en kopi av programmet i bakgrunnen (ikke nødvendigvis synlig på skjermen) før koden kjøres.
Noen eksempler på Dim-utsagn er følgende:
Dim appExcel som ny Excel.Application
Dim appOutlook As New Outlook.Application
Dim appPowerPoint As New PowerPoint.Application
Dim appWord As New Word.Application
En Dim-setning er bare gyldig hvis det riktige objektbiblioteket er lastet inn. For eksempel mislykkes setningen Dim appWord As New Word.Application hvis objektbiblioteket for Microsoft Word ikke er valgt i Referanser-dialogboksen.
Dim-setningene lager bare objektvariabler som refererer til applikasjonen fra koden din. For faktisk å koble til en applikasjons applikasjonsobjekt, må du angi objektvariabelnavnet til applikasjonen. Syntaksen er
Sett objectVariable Som CreateObject(“appName.Application”)
der objectVariable er det samme som navnet du spesifiserte i Dim-setningen, og appName er navnet på applikasjonsprogrammet. Med henvisning til de tidligere Dim-setningene, er Set-setningene du bruker for hver definerte objektvariabel følgende:
Sett appExcel = CreateObject(“Excel.Application”)
Sett appOutlook = CreateObject(“Outlook.Application”)
Sett appPowerPoint = CreateObject(“PowerPoint.Application”)
Sett appWord = CreateObject(“Word.Application”)
Hver applikasjon i Office-pakken har sin egen objektmodell med egne objekter og egenskaper, men de grunnleggende ideene er de samme uavhengig av hvilket program og objektmodell du bruker.