Visual Basic for Applications (VBA) är inte ett programmeringsspråk enbart för Microsoft Access 2003. Det är ett programmeringsspråk för alla applikationsprogram som stöder automation. Automation (med stort A ) hänvisar till möjligheten för ett program att manipuleras programmatiskt, eller styras automatiskt med hjälp av ett programmeringsspråk som VBA. Alla stora applikationer i Microsoft Office, inklusive Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint och Microsoft Word stöder automatisering. Du kan skriva kod för att automatiskt dela data mellan dem.
Termerna Component Object Model ( COM ) och OLE-automation är äldre termer för (men är i grunden synonyma med) det som för närvarande kallas Automation.
Innan du börjar skriva kod
Innan du utbyter data mellan Access och andra program i Microsoft Office Suite, var medveten om att det sällan krävs att skriva kod för att utföra jobbet. Du kan importera och exportera mycket data mellan Microsoft Office-program utan att skriva någon kod alls. Du kan till exempel utföra följande åtgärder:
- Importera och exportera data genom att använda alternativen på menyn Access File.
- E-post Få tillgång till objekt, såsom rapporter, genom att välja Skicka till –> E-postmottagare.
- Använd OfficeLinks-funktionen för att skicka objekt till andra program.
- Använd grundläggande Windows klipp-och-klistra-tekniker och OLE (Object Linking and Embedding) för att kopiera och länka data mellan program.
- Slå samman data från Access-tabeller till Microsoft Word-brev, etiketter, kuvert eller andra rapporter med hjälp av Word Mail Merge-funktionen. (Sök i Word-hjälpsystemet efter sammanfogning. )
Om du bara vill få data från Access till ett annat program (eller vice versa), är det förmodligen inte det lättaste att skriva kod. Någon av de tidigare metoderna är enklare än att skriva anpassad VBA-kod för att göra jobbet.
Naturligtvis, en gång i en ökänt blå måne, stöter du på en situation där att skriva VBA-kod är det enda, eller kanske bara det bästa, sättet att få jobbet gjort. Den här artikeln visar dig några grundläggande begrepp som du vill förstå.
Laddar lämpliga objektmodeller
Access-objektmodellen tillhandahåller ett sätt att referera till objekt med namn så att du kan manipulera dessa objekt genom att använda VBA-kod. Varje Office-applikationsprogram som exponerar sig för VBA har en objektmodell, precis som Access gör. När ett applikationsprograms objektbibliotek är tillgängligt kan du använda VBA för att styra applikationen.
En objektmodell definierar namn och organisation av objekt i applikationen. Ett objektbibliotek är den faktiska filen som är lagrad på din hårddisk och definierar den konceptuella objektmodellen.
Innan du skriver kod för att styra ett externt program från Access, måste du läsa in lämpligt objektbibliotek i dialogrutan Referenser i Access. Följ dessa steg:
1. Se till att du är i Visual Basic Editor.
Tryck på Alt+F11 om du är i Access-programfönstret.
2. Välj Verktyg –> Referenser från Visual Basic Editor-menyn.
Dialogrutan Referenser öppnas.
3. Bläddra igenom listan Tillgängliga referenser och välj objektbiblioteken för de program som du vill kontrollera.
I figur 1 är de valda objektbiblioteken för Access, Excel, Outlook, PowerPoint och Word (bland andra).

Figur 1: Flera objektbibliotek valda i dialogrutan Referenser.
4. Klicka på OK.
Alla valda objektbibliotek kommer att öppnas och du har tillgång till alla deras objektmodeller från och med nu.
Avlastning av objektbibliotek
Att ladda fler objektbibliotek än nödvändigt är slöseri eftersom VBA-program går långsammare. I verkligheten behöver du sällan välja alla tillgängliga objektbibliotek (se figur 1) om du inte verkligen hade för avsikt att interagera med alla dessa program från den aktuella databasen.
Du kan ladda ner bibliotek lika enkelt som du laddar dem. Öppna dialogrutan Referenser och avmarkera kryssrutan bredvid alla objektbibliotek som du egentligen inte tänker använda.
Utforska ett programs objektmodell
Objektbläddraren i Visual Basic Editor ger tillgång till alla objektmodeller som för närvarande är valda i dialogrutan Referenser. Varje inläst objektmodell innehåller många objekt, klasser, egenskaper och sådant. Men för Automation vill man främst titta på varje programs Application Object. Till exempel exponerar Access Application Object Access för andra program som stöder automatisering. Excel-applikationsobjektet (som finns i Excel-objektbiblioteket) exponerar Excel för andra automationsprogram och så vidare.
För att öppna objektbläddraren i VBA Editor, välj Visa –> Objektbläddrare eller tryck på F2. För att få hjälp med ett objekt i objektbläddraren, klicka på dess namn och klicka sedan på knappen Hjälp (?) i objektbläddrarens verktygsfält.
När du väljer från listan Projekt/bibliotek i objektläsaren och rullar ner i listan Klasser i den vänstra kolumnen ser du flera applikationsobjekt. När du klickar på ett av programobjekten visas namnet på programmet längst ner i dialogrutan. Medlemmar av det programobjektet visas i rutan till höger, som visas i figur 2.

Figur 2: Objektbläddraren efter att ha lagt till flera objektbibliotek.
Ställa in referenser till andra program
Med objektmodeller inlästa är du redo att börja ställa in referenser till tillgängliga program i VBA-kod. Det första steget är att använda en Dim-sats för att skapa en objektvariabel som refererar till applikationen som du vill ansluta till, med följande syntax:
Dimma anyName Som [Nytt] program.Application
I syntaxen är anyName vilket namn du vill, som ska användas i din kod för att referera till programmet. Det program argumentet är det officiella namnet på Automation programmet. Nyckelordet är valfritt. Om det ingår öppnar Nytt nyckelord en kopia av programmet i bakgrunden (inte nödvändigtvis synligt på skärmen) innan koden körs.
Några exempel på Dim-satser är följande:
Dim appExcel Som ny Excel.Application
Dim appOutlook As New Outlook.Application
Dim appPowerPoint Som Ny PowerPoint.Application
Dim appWord Som Ny Word.Application
En Dim-sats är endast giltig om lämpligt objektbibliotek är laddat. Till exempel misslyckas uttalandet Dim appWord As New Word.Application om objektbiblioteket för Microsoft Word inte är markerat i dialogrutan Referenser.
Dim-satserna skapar bara objektvariabler som refererar till applikationen inifrån din kod. För att faktiskt göra anslutningen till ett programs Application-objekt måste du ställa in objektvariabelns namn för programmet. Syntaxen är
Ställ in objectVariable Som CreateObject(“appName.Application”)
där objectVariable är samma som namnet du angav i Dim-satsen och appName är namnet på applikationsprogrammet. Med hänvisning till de tidigare Dim-satserna är Set-satserna som du använder för varje definierad objektvariabel följande:
Ställ in appExcel = CreateObject(“Excel.Application”)
Ställ in appOutlook = CreateObject(“Outlook.Application”)
Ställ in appPowerPoint = CreateObject(“PowerPoint.Application”)
Ställ in appWord = CreateObject(“Word.Application”)
Varje applikation i Office-paketet har sin egen objektmodell med sina egna objekt och egenskaper, men grundidéerna är desamma oavsett vilket program och objektmodell man använder.