Visual Basic for Applications (VBA) ei ole ohjelmointikieli vain Microsoft Access 2003:lle. Se on ohjelmointikieli kaikille automaatiota tukeville sovellusohjelmille. Automaatio (isolla kirjaimella A ) viittaa ohjelman mahdollisuuteen manipuloida ohjelmallisesti tai ohjata automaattisesti käyttämällä ohjelmointikieltä, kuten VBA. Kaikki tärkeimmät Microsoft Office -sovellukset, mukaan lukien Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint ja Microsoft Word, tukevat automaatiota. Voit kirjoittaa koodin jakaaksesi tietoja automaattisesti heidän kesken.
Termit Component Object Model ( COM ) ja OLE-automaatio ovat vanhempia termejä (mutta ovat periaatteessa synonyymejä) termille, jota tällä hetkellä kutsutaan automaatioksi.
Ennen kuin aloitat koodin kirjoittamisen
Ennen kuin vaihdat tietoja Accessin ja muiden Microsoft Office Suiten ohjelmien välillä, ota huomioon, että koodin kirjoittaminen työn suorittamiseksi on harvoin tarpeen. Voit tuoda ja viedä paljon tietoja Microsoft Office -sovellusten välillä kirjoittamatta mitään koodia. Voit esimerkiksi suorittaa seuraavat toiminnot:
- Tuo ja vie tietoja käyttämällä Access File -valikon vaihtoehtoja.
- Sähköposti Käytä objekteja, kuten raportteja, valitsemalla Lähetä -> Sähköpostin vastaanottaja.
- Käytä OfficeLinks-ominaisuutta lähettääksesi objekteja muille ohjelmille.
- Käytä Windowsin perusleikkaa ja liitä -tekniikoita ja OLE:tä (Object Linking and Embedding) tietojen kopioimiseen ja linkittämiseen ohjelmien välillä.
- Yhdistä tiedot Access-taulukoista Microsoft Wordin kirjeisiin, tarroihin, kirjekuoriin tai muihin raportteihin Wordin yhdistämisominaisuuden avulla. (Hae yhdistämistä Wordin ohjejärjestelmästä . )
Jos haluat vain saada tietoja Accessista toiseen ohjelmaan (tai päinvastoin), koodin kirjoittaminen ei todennäköisesti ole helpoin tapa. Mikä tahansa aiemmista lähestymistavoista on helpompaa kuin mukautetun VBA-koodin kirjoittaminen työn suorittamiseksi.
Tietysti kerran sananlaskun sinisessä kuussa törmäät tilanteeseen, jossa VBA-koodin kirjoittaminen on ainoa tai ehkä vain paras tapa saada työ tehtyä. Tämä artikkeli näyttää joitain peruskäsitteitä, jotka haluat ymmärtää.
Ladataan sopivia kohdemalleja
Access-objektimalli tarjoaa keinon viitata objekteihin nimellä, jotta voit käsitellä niitä VBA-koodin avulla. Jokaisella Office-sovellusohjelmalla, joka altistaa itsensä VBA:lle, on objektimalli, kuten Accessilla. Kun sovellusohjelman objektikirjasto on käytettävissä, voit ohjata kyseistä sovellusta VBA:n avulla.
Oliomalli määrittelee nimet ja organisointi esineitä sovelluksen. Objektikirjasto on todellinen tiedosto, joka on tallennettu kiintolevyllesi ja määrittää käsitteellisen objektimallin.
Ennen kuin kirjoitat koodia ulkoisen sovelluksen ohjaamiseksi Accessista, sinun on ladattava asianmukainen objektikirjasto Accessin Viittaukset-valintaikkunaan. Toimi seuraavasti:
1. Varmista, että olet Visual Basic Editorissa.
Paina Alt+F11, jos olet Access-ohjelmaikkunassa.
2. Valitse Visual Basic Editorin valikosta Työkalut –> Viitteet.
Viitteet-valintaikkuna avautuu.
3. Selaa Käytettävissä olevat viitteet -luetteloa ja valitse kohdekirjastot niille ohjelmille, joita haluat ohjata.
Kuvassa 1 valitut objektikirjastot ovat Accessille, Excelille, Outlookille, PowerPointille ja Wordille (muun muassa).
Kuva 1: Useita kohdekirjastoja valittuna Viittaukset-valintaikkunassa.
4. Napsauta OK.
Kaikki valitut objektikirjastot avautuvat, ja sinulla on pääsy kaikkiin niiden objektimalleihin tästä lähtien.
Objektikirjastojen purkaminen
Tarvittavaa enemmän objektikirjastojen lataaminen on turhaa, koska VBA-ohjelmat toimivat hitaammin. Tosielämässä sinun on harvoin valittava kaikki saatavilla olevat objektikirjastot (katso kuva 1), ellet todella aikonut olla vuorovaikutuksessa kaikkien näiden ohjelmien kanssa nykyisestä tietokannasta.
Voit purkaa kirjastoja yhtä helposti kuin lataat ne. Avaa Viitteet-valintaikkuna ja poista valintamerkki niiden objektikirjastojen vierestä, joita et todella aio käyttää.
Ohjelman objektimallin tutkiminen
Visual Basic Editorin objektiselain tarjoaa pääsyn kaikkiin Viittaukset-valintaikkunassa tällä hetkellä valittuihin objektimalleihin. Jokainen ladattu objektimalli sisältää monia objekteja, luokkia, ominaisuuksia ja vastaavia. Mutta automaatiota varten haluat pääasiassa tarkastella kunkin ohjelman sovellusobjektia. Esimerkiksi Access-sovellusobjekti paljastaa pääsyn muille automaatiota tukeville ohjelmille. Excel-sovellusobjekti (sisältyy Excel-objektikirjastoon) paljastaa Excelin muille automaatioohjelmille ja niin edelleen.
Avaa objektiselain VBA-editorissa valitsemalla Näytä -> Objektiselain tai painamalla F2. Saadaksesi apua objektiselaimen kohteen kanssa, napsauta sen nimeä ja napsauta sitten Object Browser -työkalupalkin Ohje (?) -painiketta.
Kun valitset objektiselaimen Project/Library-luettelosta ja vierität alas vasemman sarakkeen Classes-luetteloa, näet useita sovellusobjekteja. Kun napsautat jotakin sovellusobjekteista, sovelluksen nimi tulee näkyviin valintaikkunan alareunaan. Sovellusobjektin jäsenet näkyvät oikealla olevassa ruudussa, kuten kuvassa 2.
Kuva 2: Objektiselain useiden objektikirjastojen lisäämisen jälkeen.
Viittausten asettaminen muihin ohjelmiin
Kun objektimallit on ladattu, olet valmis aloittamaan viittausten asettamisen käytettävissä oleviin ohjelmiin VBA-koodissa. Ensimmäinen vaihe on Dim-käskyn avulla luoda objektimuuttuja, joka viittaa sovellukseen, johon haluat muodostaa yhteyden, käyttämällä seuraavaa syntaksia:
Himmentää anyName [Uusi] ohjelmana. Sovellus
Syntaksissa anyName on mikä tahansa haluamasi nimi, jota käytetään koodissasi viittaamaan sovellukseen. Ohjelma argumentti on virallinen nimi Automation ohjelman. Uusi avainsana on valinnainen. Jos uusi avainsana on mukana, se avaa kopion sovelluksesta taustalla (ei välttämättä näy näytöllä) ennen koodin suorittamista.
Joitakin esimerkkejä Dim-lauseista ovat seuraavat:
Himmeä sovellusExcel uutena Excel.Sovellus
Himmeä sovellusOutlook uutena Outlook.Sovellus
Himmeä sovellusPowerPoint uutena PowerPoint.Sovellus
Himmeä appWord uutena Wordina.Sovellus
Dim-käsky on kelvollinen vain, jos sopiva objektikirjasto on ladattu. Esimerkiksi Dim appWord As New Word.Application -käsky epäonnistuu, jos Microsoft Wordin objektikirjastoa ei ole valittu Viittaukset-valintaikkunassa.
Dim-käskyt luovat vain objektimuuttujia, jotka viittaavat sovellukseen koodistasi. Jos haluat todella muodostaa yhteyden sovelluksen sovellusobjektiin, sinun on asetettava sovellukselle objektimuuttujan nimi. Syntaksi on
Aseta objektimuuttuja muotoon CreateObject("appName.Application")
jossa objectVariable on sama kuin Dim-käskyssä määrittämäsi nimi ja appName on sovellusohjelman nimi. Viitaten aikaisempiin Dim-käskyihin, kullekin määritetylle objektimuuttujalle käyttämäsi Set-käskyt ovat seuraavat:
Aseta appExcel = CreateObject("Excel.Application")
Set appOutlook = CreateObject("Outlook.Application")
Set appPowerPoint = CreateObject("PowerPoint.Application")
Aseta appWord = CreateObject("Word.Application")
Jokaisella Office-paketin sovelluksella on oma objektimallinsa omine objekteineen ja ominaisuuksineen, mutta perusideat ovat samat riippumatta siitä, mitä ohjelmaa ja objektimallia käytät.