Yksi Visual Basicin merkittävimmistä ominaisuuksista on, että se on saattaa loppuun kehitysympäristö. Mitä tahansa haluat tehdä, Visual Basic -tuotteen maku auttaa sinua tekemään työtä! Voit käyttää Visual Basic -sovellusta työpöytä-, mobiili- ja etäkehitykseen (VB.NET), komentosarjoihin (VBScript) ja Office-kehitykseen (VBA !) Jos olet kokeillut VBA: ta ja haluat tietää enemmän siitä, miten sitä käytetään, tämä on opetusohjelma sinulle. (Kurssi perustuu Microsoft Office 2010: n VBA-versioon.)
Jos etsit kurssia Microsoft Visual Basic .NET -verkostosta, olet myös löytänyt oikean paikan. Tutustu: Visual Basic .NET 2010 Express - opetus "alusta alkaen"
VBA yleisenä käsitteenä käsitellään tässä artikkelissa. VBA: lla on enemmän kuin luulisi! Löydät myös artikkeleita Office VBA -sisareista:
Periaatteessa on kaksi tapaa kehittää ohjelmia, jotka toimivat Office-sovellusten kanssa: VBA ja VSTO. Lokakuussa 2003 Microsoft esitteli parannuksen Visual Studio .NET: n ammatilliseen ohjelmointiympäristöön nimeltään Visual Studio Tools for Office - VSTO. Mutta vaikka VSTO hyödyntää .NET: n huomattavia etuja Officessa, VBA on edelleen suositumpi kuin VSTO. VSTO edellyttää Office-sovelluksen lisäksi Visual Studion Professional- tai uudemman version käyttöä, joka todennäköisesti maksaa enemmän kuin käyttämäsi Office-sovellus. Mutta koska VBA on integroitu isäntä Office -sovellukseen, et tarvitse mitään muuta.
VBA: ta käyttävät pääasiassa Office-asiantuntijat, jotka haluavat tehdä työstään nopeampaa ja helpompaa. Näet harvoin VBA: n kirjoitetut suuret järjestelmät. Toisaalta suurempien organisaatioiden ammatti-ohjelmoijat käyttävät VSTO: ta luomaan melko hienostuneita lisäosia. Kolmannen osapuolen, kuten Word-yhtiön paperitoimiston tai Excel-kirjanpitoyrityksen, hakemus kirjoitetaan todennäköisemmin VSTO: lla.
Asiakirjoissaan Microsoft huomauttaa, että VBA: n käyttöön on periaatteessa kolme syytä:
-> Automaatio ja toisto - Tietokoneet voivat tehdä saman asian yhä uudestaan ja paremmin ja nopeammin kuin ihmiset pystyvät.
-> Laajennukset käyttäjän vuorovaikutukseen - Haluatko ehdottaa tarkalleen, kuinka jonkun tulisi muotoilla asiakirja tai tallentaa tiedosto? VBA voi tehdä sen. Haluatko vahvistaa, mitä joku kirjoittaa? Myös VBA voi tehdä sen.
-> Office 2010 -sovellusten vuorovaikutus - Tämän sarjan myöhemmän artikkelin nimi on Word ja Excel Working Working. Mutta jos tämä on mitä tarvitset, kannattaa ehkä harkita Toimisto automaatio, eli kirjoittamalla järjestelmä VB.NET: llä ja käyttämällä sitten toimintoja Office-sovelluksesta, kuten Word tai Excel, tarpeen mukaan.
Microsoft on ilmoittanut jatkavansa VBA: n tukemista ja se on esillä näkyvästi Virallinen Microsoft Office 2010 -kehityksen etenemissuunnitelma. Joten sinulla on niin paljon vakuutuksia kuin Microsoft koskaan antaa, että investointisi VBA-kehitykseen eivät vanhene lähitulevaisuudessa.
Toisaalta, VBA on viimeinen jäljellä oleva Microsoft-tuote, joka riippuu VB6 "COM" -tekniikasta. Se on nyt yli kaksikymmentä vuotta vanha! Ihmisvuosina se tekisi siitä vanhemman kuin Lestat the Vampire. Saatat nähdä sen kuin "kokeiltua, testattua ja totta" tai saatat ajatella sitä "muinaisena, kuluneena ja vanhentuneena". Pidän mieluummin ensimmäistä kuvausta, mutta sinun pitäisi olla tietoinen tosiasioista.
Ensimmäinen ymmärrettävä asia on VBA: n ja Office-sovellusten, kuten Wordin ja Excel, välinen suhde. Office-sovellus on isäntä VBA: lle. VBA-ohjelmaa ei voida koskaan suorittaa itse. VBA kehitetään isäntäympäristössä (käyttämällä Kehittäjä välilehti Office-sovellusnauhassa) ja se on suoritettava osana Word-asiakirjaa, Excel-työkirjaa, Access-tietokantaa tai jotakin muuta Office-isäntää.
Tapa, jolla VBA: tä todella käytetään, on myös erilainen. Word-kaltaisessa sovelluksessa VBA: ta käytetään ensisijaisesti tapaa käyttää isäntäympäristön objekteja, kuten käyttää dokumentin kappaleita Wordin Wordilla. Asiakirja. Kohdat kohtaavat. Jokainen isäntäympäristö luo ainutlaatuisia objekteja, joita ei ole saatavana muissa isäntäympäristöissä. (Esimerkiksi Word-asiakirjassa ei ole "työkirjaa". Työkirja on ainutlaatuinen Excelille.) Visual Basic -koodi on pääasiassa olemassa, jotta voidaan käyttää jokaiselle Office-isäntäsovellukselle räätälöityjä objekteja.
Fuusio VBA: n ja isäntäkohtaisen koodin välillä näkyy tässä koodinäytteessä (otettu Microsoftiltä Northwind näytteetietokanta), jossa puhtaasti VBA-koodi näkyy punaisella ja käyttökohtainen koodi näkyy sininen. Punainen koodi olisi sama Excelissä tai Wordissa, mutta sininen koodi on ainutlaatuinen tälle Access-sovellukselle.
Itse VBA on melkein sama kuin vuosien ajan. Tapaa, jolla se integroituu isäntä Office -sovellukseen ja ohjejärjestelmään, on parannettu enemmän.
Office 2010 -versio ei näytä Kehittäjä-välilehteä oletuksena. Kehittäjä-välilehti vie sinut sovelluksen osaan, jolla voit luoda VBA-ohjelmia, joten ensin sinun on muuttaa kyseinen vaihtoehto. Mene vain Tiedosto-välilehteen Asetukset, Mukauta nauhaa ja napsauta Kehittäjä-ruutua Päävälilehdet -osiossa.
Ohjejärjestelmä toimii paljon sujuvammin kuin aiemmissa versioissa. Voit saada apua VBA-kysymyksiin joko offline-tilassa, järjestelmästä, joka on asennettu Office-sovelluksesi kanssa, tai online-tilassa Microsoftin kautta Internetissä. Nämä kaksi rajapinta on suunniteltu näyttämään paljon samanlaisilta:
Napsauta tätä nähdäksesi kuvan
Jos Internet-yhteytesi on nopea, online-ohje antaa sinulle enemmän ja parempia tietoja. Mutta paikallisesti asennettu versio on todennäköisesti nopeampi ja useimmissa tapauksissa se on yhtä hyvä. Haluat ehkä asettaa paikallisen ohjeen oletusasetukseksi ja käyttää sitten online-apua, jos paikallinen versio ei anna sinulle mitä haluat. Nopein tapa siirtyä verkkoon on vain valita "Kaikki sanat" (tai "Kaikki Excel" tai muu sovellus) Ohje-pudotusvalikosta. Tämä kytkeytyy heti verkkoon ja suorittaa saman haun, mutta se ei palauta oletusvalintasi.
Napsauta tätä nähdäksesi kuvan
Seuraavalla sivulla aloitamme kuinka VBA-ohjelma luodaan.
Kun VBA: ta "isännöi" sellainen sovellus, kuten Word tai Excel, ohjelma "asuu" isäntän käyttämässä asiakirjatiedostossa. Voit esimerkiksi tallentaa Wordiin 'Word-makro' (se on ei 'makro', mutta emme puhu tällä hetkellä terminologiasta) joko Word-dokumentissa tai Word-mallissa.
Oletetaan nyt, että tämä VBA-ohjelma on luotu Wordissä (tämä yksinkertainen ohjelma muuttaa vain fontin lihavoituna valitulle riville) ja tallennetaan Word-asiakirjaan:
Sub AboutMacro () ' 'Tietoja Makro-makrosta. 'Makron nauhoittanut 9.9.19999 Dan Mabbutt. ' Valinta. Kotiavainyksikkö: = wdStory. Valinta. EndKey Unit: = wdLine, Extend: = wdExtend. Valinta. Fontti. Lihavoitu = wdToggle. Valinta. EndKey Unit: = wdStory. End Sub.
Aiemmissa Office-versioissa voit nähdä selvästi VBA-koodin, joka on tallennettu osana asiakirjaa tiedosto tallennettuun Word-asiakirjaan katsomalla sitä Muistiossa, missä Word-asiakirjan kaikki voivat nähnyt. Tämä kuva on tuotettu Wordin aiemmalla versiolla, koska Microsoft muutti asiakirjamuotoa nykyisessä versiossa ja VBA-ohjelman koodi ei enää näy selvästi selkeänä tekstinä. Mutta päämies on sama. Samoin, jos luot Excel-laskentataulukon "Excel-makrolla", se tallennetaan osana .xlsm-tiedostoa.
Napsauta tätä nähdäksesi kuvan
VBA ja turvallisuus
Yksi aiemmin tehokkaimmista tietokonevirus temppuista oli haitallisen VBA-koodin lisääminen Office-asiakirjaan. Kun aiemmissa Office-versioissa dokumentti avattiin, virus voi ajaa automaattisesti ja aiheuttaa tuhoa koneellesi. Tämä avoin Office-tietoturva-aukko oli alkanut vaikuttaa Office-myyntiin, ja se todella sai Microsoftin huomion. Nykyisen Office-sukupolven 2010 kanssa Microsoft on kiinnittänyt aukon perusteellisesti. Tässä mainittujen parannusten lisäksi Microsoft on parantanut Office-tietoturvaa tavoilla, joita et ehkä edes huomaa heti laitteistotasolle saakka. Jos epäröit käyttää VBA: ta, koska kuulit, että se ei ollut turvallista, voit olla varma, että Microsoft on mennyt ylimääräiselle mailille muuttaaksesi sen nyt.
Tärkein muutos oli luoda erityinen asiakirjatyyppi vain Office-asiakirjoille, jotka sisältävät VBA-ohjelmat. Esimerkiksi Wordissa MyWordDoc.docx ei voi sisältää VBA-ohjelmaa, koska Word ei salli tiedostoja, jotka on tallennettu "docx" -päätteellä. Tiedosto on tallennettava nimellä "MyWordDoc.docm", jotta VBA-ohjelmointi sallitaan osana tiedostoa. Excelissä tiedostopääte on ".xlsm".
Edelleen tämän parannetun asiakirjatyypin luomiseksi Microsoft loi Officeiin uuden tietoturvaalijärjestelmän nimeltään Trust Center. Pohjimmiltaan voit mukauttaa kuinka Office-sovelluksesi käsittelee VBA-koodia sisältäviä asiakirjoja yksityiskohtaisesti. Voit avata Luottamuskeskuksen Office-sovelluksen Kehittäjä-välilehdestä napsauttamalla nauhan Koodi-osiossa Makroturvallisuus.
Napsauta tätä nähdäksesi kuvan
Jotkut vaihtoehdoista on suunniteltu "kovettamaan" Office-sovelluksiasi, jotta haitallista koodia ei käytetä ja toiset ovat suunniteltu helpottamaan VBA: n käyttöä kehittäjille ja käyttäjille ilman, että suojaus turhaan hidastaa asioita alas. Kuten näette, on olemassa monia tapoja, joilla voit mukauttaa tietoturvaa, ja käydä läpi kaikki ne ovat kaukana tämän artikkelin soveltamisalasta. Onneksi Microsoftin sivustolla on laaja asiakirja-aineisto tästä aiheesta. Ja on myös onnea, että oletussuojausasetukset ovat hyvät useimpiin vaatimuksiin.
Koska VBA on sidottu isäntä Office -sovellukseen, sinun on suoritettava se siellä. Aihe on katettu seuraavalta sivulta alkaen.
Kuinka voin suorittaa VBA-sovelluksen
Se on oikeastaan erittäin hyvä kysymys, koska se on ensimmäinen, jonka sovelluksesi käyttäjät kysyvät. Periaatteessa on kaksi tapaa:
-> Jos päätät olla käyttämättä ohjainta, kuten nappia, ohjelman käynnistämiseen, sinun on käytettävä nauhan Makro-komentoa (Kehittäjä-välilehti, Koodiryhmä). Valitse VBA-ohjelma ja napsauta Suorita. Mutta tämä saattaa tuntua hiukan liikaa joillekin käyttäjillesi. Et ehkä esimerkiksi halua, että Kehittäjä-välilehti olisi edes heidän käytettävissään. Siinä tapauksessa ...
-> Sinun on lisättävä jotain, jota käyttäjä voi napsauttaa tai kirjoittaa käynnistääksesi sovelluksen. Tässä artikkelissa tarkastellaan painikkeiden ohjausta. Mutta se voi olla napsauttamalla pikakuvaketta, kuvaketta työkalurivillä tai jopa tietojen syöttämistä. Näitä kutsutaan Tapahtumat ja mitä me kirjoitamme tässä ja myöhemmissä artikkeleissa, on tapahtuman koodi - Ohjelmakoodi, joka suoritetaan automaattisesti, kun tapahtuu jokin tietty tapahtuma, kuten painikkeen ohjaimen napsauttaminen.
UserForms, lomake- ja ActiveX-komponentit
Jos et vain valitse makro, yleisin tapa suorittaa VBA-ohjelma on napsauttaa painiketta. Tämä painike voi olla joko a muodon hallinta tai ActiveX-ohjaus. Tietyn asteen mukaan valintasi riippuvat käyttämästäsi Office-sovelluksesta. Excel tarjoaa hieman erilaisia vaihtoehtoja kuin esimerkiksi Word. Mutta nämä perustavat valvontatyypit ovat samat.
Koska se tarjoaa eniten joustavuutta, katsotaanpa mitä voit tehdä Excel 2010: llä. Yksinkertainen tekstiviesti lisätään soluun, kun useita eri painikkeita napsautetaan vain erojen selventämiseksi.
Aloita luomalla uusi Excel-työkirja ja valitsemalla Kehittäjä-välilehti. (Jos sinulla on toinen Office-sovellus, näiden ohjeiden muunnelman tulisi toimia.)
Napsauta Lisää-kuvaketta. Työskentelemme ensin lomakehallinnat-painikkeen kanssa.
Lomakeohjeet ovat vanhempi tekniikka. Excelissä ne otettiin ensimmäisen kerran käyttöön versiossa 5.0 vuonna 1993. Työskentelemme seuraavaksi VBA UserForms: n kanssa, mutta lomakeohjauksia ei voida käyttää heidän kanssaan. Ne eivät myöskään ole yhteensopivia verkon kanssa. Lomakeohjaimet sijoitetaan suoraan laskentataulukon pinnalle. Toisaalta joitain ActiveX-komponentteja - joita tarkastelemme seuraavaksi - ei voida käyttää suoraan laskentataulukoissa.
Lomakeohjaimia käytetään napsauttamalla ja piirtämällä -tekniikkaa. Napsauta painikemuodon säädintä. Hiiren osoitin muuttuu plusmerkiksi. Piirrä säädin vetämällä pinnan yli. Kun vapautat hiiren painikkeen, esiin tulee valintaikkuna, joka pyytää makrokomentoa yhteyden muodostamiseksi painikkeeseen.
Napsauta tätä nähdäksesi kuvan
Varsinkin kun luot ohjausobjektin ensimmäistä kertaa, sinulla ei ole VBA-makroa, joka odottaa yhteyden muodostamista -painiketta, joten napsauta Uusi ja VBA Editor avautuu ja ehdotettu nimi on jo täytetty tapahtuman kuoreen aliohjelmaan.
Napsauta tätä nähdäksesi kuvan
Viimeistele tämä hyvin yksinkertainen sovellus kirjoittamalla tämä VBA-koodin käsky alaosaan:
Solut (2, 2) .Value = "Napsautettu lomakepainiketta"
ActiveX-painike on melkein täsmälleen sama. Yksi ero on, että VBA sijoittaa tämän koodin laskentataulukkoon, ei erilliseen moduuliin. Tässä on täydellinen tapahtumakoodi.
Yksityinen alikomento Button1_Click () Solut (4, 2) .Value = "Napsautettu ActiveX-painiketta" End Sub.
Sen lisäksi, että sijoitat nämä säätimet suoraan taulukkoon, voit lisätä myös käyttäjälomakkeen projektiin ja aseta sen sijaan ohjaimet. UserFormsilla - suunnilleen samalla tavalla kuin Windows-lomakkeilla - on paljon etuja, koska ne pystyvät hallitsemaan ohjauksia enemmän kuin normaali Visual Basic -sovellus. Lisää UserForm projektiin Visual Basic -editorissa. Käytä Näytä-valikkoa tai napsauta hiiren kakkospainikkeella Project Explorer -sovelluksessa.
Napsauta tätä nähdäksesi kuvan
UserFormin oletus on ei näytä muoto. Jotta se olisi näkyvissä (ja asettaisi sen hallintalaitteet käyttäjän saataville), suorita lomakkeen Näytä-menetelmä. Lisäsin toisen lomakepainikkeen juuri tätä varten.
Alapainike2_Click () UserForm1.Show. End Sub.
Huomaat, että UserForm on modaalinen oletuksena. Tämä tarkoittaa, että kun lomake on aktiivinen, kaikki muu sovelluksessa ei ole aktiivinen. (Esimerkiksi muiden painikkeiden napsauttaminen ei tee mitään.) Voit muuttaa tämän vaihtamalla UserForm ShowModal-ominaisuuden arvoon False. Mutta tämä syventää ohjelmointia. Tämän sarjan seuraavissa artikkeleissa selitetään lisää tästä.
UserForm-koodi sijoitetaan UserForm-objektiin. Jos valitset Näytä koodi kaikille Project Explorerin objekteille, huomaat, että kolmea erilaista objektia sisältää kolme erillistä Click-tapahtuman aliohjelmaa. Mutta he ovat kaikki saatavana samassa työkirjassa.
Napsauta tätä nähdäksesi kuvan
Sen lisäksi, että pakotetaan tapahtuma napsauttamalla painiketta, VBA: ta käytetään myös reagoimaan isännöintisovelluksen objektien tapahtumiin. Voit esimerkiksi havaita, milloin laskentataulukko muuttuu Excelissä. Tai voit havaita, milloin rivi lisätään tietokantaan Accessissa, ja kirjoittaa ohjelma kyseisen tapahtuman käsittelemiseksi.
Tunnettujen komentopainikkeiden, tekstikenttien ja muiden komponenttien lisäksi, joita näet ohjelmissa koko ajan, voit lisätä komponentteja, jotka tosiasiallisesti kuuluvat Excel-taulukkoon sisään Word-asiakirjasi. Tai tee päinvastainen. Tämä on paljon enemmän kuin "kopioi ja liitä". Voit esimerkiksi näyttää Excel-laskentataulukon Word-asiakirjassa.
VBA: n avulla voit käyttää yhden Office-sovelluksen koko voimaa toisessa. Esimerkiksi Wordilla on suhteellisen yksinkertainen laskentakyky. Mutta Excel - hyvin - "erinomainen" laskennassa. Oletetaan, että halusit käyttää Gamma-toiminnon luonnollista lokia (suhteellisen hienostunut matemaattinen laskelma) Word-dokumentissasi? VBA: n avulla voit siirtää arvoja toiminnolle Excelissä ja saada vastauksen takaisin Word-asiakirjaasi.
Ja voit käyttää paljon enemmän kuin Office-sovelluksia! Jos napsautat Lisää säätimiä -kuvaketta, näet huomattavan luettelon tietokoneellesi asennetuista asioista. Kaikkia näitä ei toimiteta "tyhjästä", ja jokaisesta niistä tulisi olla saatavilla asiakirjat, mutta se antaa sinulle kuvan siitä, kuinka laaja tuki VBA: lle on.
Kaikista VBA: n ominaisuuksista on sellainen, joka on selvästi hyödyllisempi kuin mikään muu. Selvitä se seuraavalla sivulla.
Olen pelastanut viimeisen parhaan! Tässä on tekniikka, jota sovelletaan yleisesti kaikkiin Office-sovelluksiin. Löydät itsesi käyttävän sitä paljon, joten käsittelemme sitä täällä johdannossa.
Kun aloitat koodata kehittyneempiä VBA-ohjelmia, yksi ensimmäisistä kohtaamista ongelmista on kuinka saada selville Office-objektien menetelmistä ja ominaisuuksista. Jos kirjoitat VB.NET-ohjelmaa, etsit usein koodinäytteitä ja esimerkkejä ongelman ratkaisemiseksi. Mutta kun tarkastellaan kaikkia erilaisia hosting-sovelluksia ja sitä, että jokaisella niistä on satoja uusia esineitä, et yleensä löydä jotain, joka vastaa tarkalleen mitä sinun täytyy tehdä.
Vastaus on "Tallenna makro ..."
Perusajatuksena on kytkeä "Record Macro" päälle, käydä läpi vaiheet prosessissa, joka on samanlainen kuin mitä haluat ohjelman suorittavan, ja tarkista sitten tuloksena olevasta VBA-ohjelmasta koodi ja ideat.
Monet ihmiset tekevät virheen ajatellessaan, että sinun on pystyttävä nauhoittamaan tarkalleen tarvitsemasi ohjelma. Mutta se ei ole ollenkaan välttämätöntä olla niin tarkka. Se on yleensä tarpeeksi hyvä tallentaa VBA-ohjelma, joka on vain "lähellä" haluamaasi, ja lisätä sitten koodimuutokset, jotta se tekee työn tarkasti. Se on niin helppoa ja hyödyllistä, että tallennan joskus tusinaa ohjelmaa pienillä eroilla vain nähdäkseni, mitkä koodierot ovat tuloksena. Muista poistaa kaikki kokeilut, kun olet valmis katsomaan niitä!
Napsautin esimerkiksi Nauhoita makro Word Visual Basic Editorissa ja kirjoitin useita rivejä tekstiä. Tässä on tulos. (Rivin jatkoa on lisätty niiden lyhentämiseksi.)
Alamakro1 () ' 'Makro1-makro. ' ' Valinta. TypeText Text: = _. "Nämä ovat aikoja, jolloin" Valinta. TypeText Text: = _. "kokeile miesten sielua. " Valinta. TypeText Text: = _. "kesäsotilas" Valinta. TypeText Text: = _. "ja aurinkopatriotti" Valinta. TypeText Text: = _. "pienenee näinä aikoina" Valinta. TypeText Text: = _. "heidän maansa palvelun". Valinta. MoveUp Unit: = wdLine, Count: = 1. Valinta. Koti-avainyksikkö: = wdLine. Valinta. MoveRight-yksikkö: = wdCharacter, _. Count: = 5, Extend: = wdExtend. Valinta. Fontti. Lihavoitu = wdToggle. End Sub.
Kukaan ei opiskele VBA: ta vain itselleen. Käytät sitä aina tietyn Office-sovelluksen kanssa. Joten jatkaa oppimista, tässä on artikkeleita, jotka kuvaavat VBA: ta, jota käytetään sekä Wordin että Excelin kanssa:
-> VBA: n käytön aloittaminen: Word-yhteistyökumppani
-> VBA: n käytön aloittaminen: Excel-yhteistyökumppani