See õpetus näitab teile, kuidas VBA Visual Basic Editoris avada ja programmeerida.
Visual Basic Editori avamine
Excelis Visual Basic Editorile (VBE) pääsemiseks on mitu võimalust.
Vajutage Alt + F11 klaviatuuril.
VÕI
Klõpsake nuppu Vaade> Makrod> Makrod. Siit saate Muuda olemasolev makro või Loo uus. Mõlemad valikud avavad VB redaktori.
VÕI
Arendaja> Visual Basic
Märkus. Kui te ei näe arendaja linti, peate selle lubama.
Arendaja lindi lubamiseks
Klõpsake Fail vahekaardil Lindi ja minge alla Valikud. Aastal Kohandage lint valikud, märkige Arendaja märkeruut. See on vaikimisi välja lülitatud, nii et peate lindi vahekaardi nägemiseks selle sisse lülitama.
Klõpsake nuppu Okei.
Põhilindile ilmub vahekaart Arendaja. Visual Basic Editori avamiseks klõpsake lindi alguses nuppu Visual Basic.
VBE ekraani mõistmine
VBE -ekraan on näidatud alloleval graafikul.
Projekti uurija
Project Explorer võimaldab teil näha, kuidas projekt, milles te töötate, on korraldatud. Näete, kui palju mooduleid ja vorme on projektis salvestatud, ning saate nende moodulite ja vormide vahel navigeerida. Moodul on koht, kuhu teie töövihiku kood salvestatakse, makro salvestamisel salvestatakse see standardmoodulisse - selle nimeks on vaikimisi „Moodul 1 '.
Iga Exceli faili töölehe taga on ka moodul, nagu ka töövihik ise. Kui sisestate Exceli põhiekraani kaudu uue lehe töövihikusse, näete Project Exploreris täiendavat lehemoodulit.
Selle mooduli koodi juurde liikumiseks topeltklõpsake moodulit.
Samuti võite klõpsata tööriistariba menüül Aken ja valida seal mooduli, et liikuda selle mooduli koodi juurde.
Moodulite tüüp
Moodulid on jagatud 5 erinevat tüüpi.
- Standardmoodulid - suurem osa teie koodist läheb seda tüüpi moodulitesse. Makrot salvestades pannakse see standardmoodulisse. Kui kirjutate üldise protseduuri, mida kogu töövihikus kasutada, läheb see tavaliselt ka standardmoodulisse.
- Töövihiku moodulid - see moodul sisaldab koodi, mis on selle töövihiku jaoks ainulaadne. Enamik seda tüüpi moodulite koodi on tuntud kui SÜNDMUSED. Sündmus võib juhtuda näiteks töövihiku avamisel või sulgemisel. Moodul võib sisaldada ka koodi, mille olete ise kirjutanud ja mida sündmused kasutavad.
- Lehtmoodulid - see moodul sisaldab koodi, mis on selle lehe jaoks ainulaadne. Need võivad ilmneda näiteks siis, kui lehel klõpsatakse ( Klõpsake nuppu Sündmus) või kui muudate lahtris andmeid. See moodul mahutab ka koodi, mille olete ise kirjutanud ja mille sündmused kutsuvad.
- Vormi moodulid - see on moodul kohandatud vormi taga, mille saate luua. Näiteks võite luua vormi arve üksikasjade hoidmiseks, nupuga OK, nupu taga olev kood (klõpsasündmus) sisaldab koodi, mis käivitub nupule klõpsamisel.
- Klassi moodulid - seda moodulit kasutatakse objektide loomiseks käitamise ajal. Klassi moodulit kasutavad täiustatud VBA programmeerijad ja seda käsitletakse hiljem.
Mooduli või vormi sisestamine oma koodi
Uue mooduli sisestamiseks oma koodi klõpsake nuppu Sisesta menüüribal ja klõpsake nuppu Moodul.
Või klõpsake nuppu Sisestage moodul nupp, mille leiate tavalisel lindil.
Uue kasutajavormi sisestamiseks oma koodi valige UserForm valik.
Kaustas kuvatakse uus kasutajavorm Projektiuurija ja kuvatakse parempoolses koodiaknas.
Võite sisestada ka a Klassi moodul
Klassimoodulit kasutatakse objektide lisamiseks teie VBA projekti.
Mooduli või vormi eemaldamine Project Explorerist
Paremklõpsake moodulil või vormil, mille soovite eemaldada, et kuvada paremklõpsu otsetee.
Klõpsake nuppu Eemalda (sel juhul Kasutajavorm1… )
VÕI
Klõpsake Fail menüü ja seejärel klõpsake nuppu Eemalda (UserForm1).
Ilmub hoiatuskast, kus küsitakse, kas soovite vormi või mooduli enne selle eemaldamist eksportida. Vormi või mooduli eksportimine võimaldab teil selle salvestada üksikfailina, et seda mõnel muul ajal kasutada mõnes teises Exceli projektis.
Mooduli eemaldamisel või vormimisel on see enamasti tingitud sellest, et te seda ei vaja, seega klõpsake nuppu Ei.
Atribuutide aken
Näete atribuutide akent all Projektiuurija. Võimalik, et peate selle sisse lülitama.
Vajutage F4 või klõpsake Vaade, Atribuutide aken.
Atribuutide aken võimaldab teil näha konkreetse mooduli või vormi atribuute, mis on valitud jaotises Projektiuurija. Kui töötate moodulitega, saate atribuutide akna abil mooduli nime muuta. See on ainus moodulile kättesaadav omadus. Kui aga töötate vormidega, on saadaval palju rohkem atribuute ja seejärel kasutatakse atribuutide akent laialdaselt vormide käitumise ja vormis sisalduvate juhtelementide juhtimiseks.
Makro salvestamisel pannakse see automaatselt standardmoodulisse. Moodul kannab nime "Moodul 1 ' ja kõik selles moodulis sisalduvad koodid on saadaval kasutamiseks kogu projekti vältel. Peaksite oma mooduli ümber nimetama millekski oluliseks, mis hõlbustaks teie koodi leidmist, kui lisate projekti mitu moodulit.
Samuti saate oma vorme ümber nimetada.
Kui olete oma lehe Excelis ümber nimetanud, kuvatakse lehe nimi sulgudes lehe 1 järel lehe nime.
Kui soovite muuta lehe taga oleva mooduli nime, saate seda muuta samamoodi nagu mooduli ja kasutajavormi nime - muutes atribuutide aknas atribuuti Nimi.
Kas olete väsinud VBA koodinäidete otsimisest? Proovige AutoMacrot!
Koodiaken
Koodiaknas kuvatakse moodulites sisalduvad alamprotseduurid ja funktsioonid - see näitab tegelikku koodi. Makro salvestamisel luuakse teie jaoks alamprotseduur. Kui lisate makrole otsetee võtme, kuvatakse see makro kommentaarina, mis annab teile teada, milline on makrole määratud kiirklahv.
Koodiakna ülaosas on kaks liitkasti. Need võimaldavad teil näha, millise objektiga (kui üldse) moodulis saate tegeleda ja millise protseduuriga töötada.
Ülaltoodud näites ei tööta me ühegi objektiga - seega on see seatud üldiseks, vaid töötame Gridlinesi protseduuri raames.
Kui meil oleks selles moodulis rohkem kui üks protseduur, saaksime kasutada ülaltoodud liitkasti, et navigeerida teistele protseduuridele.
Koodeksi mõistmine
Protseduure on kahte tüüpi - Alamprotseduurid ja Funktsiooniprotseduurid.
Alamprotseduurid
Makrosalvesti saab salvestada ainult alamprotseduure. Alamprotseduur teeb asju. Nad sooritavad selliseid toiminguid nagu tabeli vormindamine või pöördtabeli loomine või ruudustiku näites teie aktiivse akna vaatesätete muutmine. Enamik kirjutatud protseduure on alamprotseduurid. Kõik makrod on alamprotseduurid.
Alamprotseduur algab a -ga Sub avaldus ja lõpeb tähega End Sub avaldus. Protseduuri nimele järgneb alati sulg.
123 | Sub HideGridLines ()ActiveWindow.DisplayGridlines = ValeEnd Sub |
Funktsiooniprotseduurid
Funktsiooniprotseduur tagastab väärtuse. See väärtus võib olla üksikväärtus, massiiv, lahtrivahemik või objekt. Funktsioonid teostavad tavaliselt teatud tüüpi arvutusi. Exceli funktsioone saab kasutada koos funktsioonide viisardiga või neid saab kutsuda alamprotseduuridest.
123 | Funktsioon Kilos (naela topelt)Kilos = (naela/2,2)Lõppfunktsioon |
Seda funktsiooni saab kasutada Exceli dialoogiboksis Lisa funktsioon, et teisendada naela kilogrammideks.
Uue korra loomine
Enne uue protseduuri loomist veenduge, et olete selles moodulis, kuhu soovite protseduuri salvestada. Uue protseduuri saate luua, klõpsates menüüd Lisa, Protseduur;
või võite klõpsata tööriistariba ikoonil
Ilmub järgmine dialoogiboks
- Sisestage nimeväljale oma uue protseduuri nimi - see peab algama tähestiku tähega ning sisaldama tähti ja numbreid ning olema maksimaalselt 64 tähemärki.
- Teil võib olla a Alamprotseduur, a Funktsiooni protseduur või a Kinnisvara protseduuri. (Atribuute kasutatakse klassi moodulites ja määratakse teie loodud ActiveX -juhtelementide atribuudid).
- Saate määrata ka menetluse ulatuse Avalik või Privaatne. Kui protseduur on avalik (vaikimisi), saavad seda kasutada kõik projekti moodulid, samas kui protseduur on privaatne, saab seda kasutada ainult see moodul.
- Selles protseduuris saate deklareerida kohalikud muutujad staatikaks (see on seotud muutuja ulatusega ja muudab kohaliku protseduuri taseme muutuja kogu mooduli jaoks avalikuks). Me ei kasuta seda võimalust.
Kui olete kõik asjakohased andmed täitnud, klõpsake nuppu Okei.
Seejärel tippige oma kood lausete Sub ja End Sub vahele.
ALTERNATIIVSELT - saate oma moodulisse alam- ja lõpp -alamlause kirjutada täpselt nii, nagu ülal. Te ei pea sõna Avalik sõna sub ette asetama - kui see sõna välja jätta, loetakse kõik mooduli toimingud automaatselt avalikuks.
Siis kirjutad Sub ja seejärel oma protseduuri nimi, millele järgneb sulg.
st:
1 | Alamkatse () |
The End Sub avaldus ilmub automaatselt.
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
Kirjutuskood, mida on lihtne mõista ja navigeerida
Kommentaaride lisamine
Harjuge oma koodi kommenteerima, et hilisemas etapis koodi funktsionaalsust meelde tuletada.
Saate oma koodi lisada kommentaari, kuid sisestada klaviatuuril apostroofi, või lülitada sisse tööriistariba Redigeerimine ja kasutada sellel tööriistaribal kuvatavat kommentaarinuppu.
Paremklõpsake tööriistaribadel.
Valige Muuda.
Kommentaari lisamiseks oma koodi klõpsake kommentaari nuppu.
MÄRGE: Tavaliselt kasutate kommentaaride blokeerimise nuppu ainult siis, kui teil on mõni koodirida, mida soovite kommenteerida (mitte kustutada). Ühel kommentaaril on lihtsam kasutada apostroofi.
Taandamine
Hea harjumus siseneda on koodi taandamine, mis muudab koodi hõlpsaks lugemise ja koodi erinevate osade nägemise.
Sõltuvalt teie koodi loogikast võib olla mitu taandeastet.
Suur- ja väiketäht
VBA kohandab kogu koodi õigele tähele, nii et kui sisestate ALL SUURTÄHEL või kõik väiketähtedega, kohandab see teie koodi õigeks!
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
Automaatne täitmine
Koodi kohandades märkate, et VBA püüab teid aidata, soovitades sisestada koodi. See on tuntud kui automaatne täitmine.
Vigade püüdmine ja silumine
VBA -koodi kirjutamisel võib ilmneda nelja tüüpi vigu - süntaksivigad, kompileerimisvead, käitusajavead ja loogilised vead.
Süntaksi vead
Need tekivad siis, kui kirjutate koodi valesti. VBA hoiab seda suuresti ära, kui lülitab sisse süntaksi kontrollimise valiku. See on tavaliselt vaikimisi sisse lülitatud, kuid kui teie seade on välja lülitatud, lülitage see sisse, minnes lehele Tööriistad, Valikud ja klõpsake Automaatne süntaksi kontroll.
Kui sisestate koodi valesti (näiteks välistate midagi, mis peaks koodis olema), ilmub koodi kirjutamise ajal sõnumikast, mis annab teile võimaluse koodi muuta.
Kompileerimisvead
Need tekivad siis, kui koodist on puudu midagi, mis takistab koodi töötamist. Viga ei ilmu koodi kirjutamisel, kuid see ilmneb koodi proovimisel ja käivitamisel.
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
Käitusaja vead
Need tekivad koodi käivitamisel ning süntaks ja kompileerimine on õiged, kuid midagi muud juhtub, et takistada koodi õiget töötamist.
Sel juhul lehte 4 pole olemas. See veateade on kasulikum kui kompileerimisveateated, kuna see annab teile võimaluse koodi siluda ja näha, miks see ei tööta.
Klõpsake nuppu Silumine. Kood peatub vea juures ja tõstab kollase tõrke esile, võimaldades teil vea parandada.
Muutke leht 4 leheks 2 (kuna leht 2 on olemas ja leht 4 puudub).
Vajutage F5 või klõpsake nuppu Jätka nuppu tööriistaribal.
Loogilised vead
Neid on kõige raskem leida. Nende puhul on kood kirjutatud õigesti, kuid koodi tegelik loogika on vigane, nii et te ei pruugi koodist soovitud tulemust saada. Loogiliste vigade puhul on vigade püüdmine hädavajalik.
Veatõrkeid on kahte tüüpi
Vea korral minge aadressile
Järgmine kood on avada dialoogiboks Faili avamine - see annab meile vea, kui kasutaja klõpsab Tühista.
Koodi käivitamisel ilmub dialoogiboks Faili avamine.
Kui klõpsate nuppu Tühista, ilmneb tõrge.
Järgmine veapüüdur jätkab koodi koodi väljumisfunktsiooni juurde ja tagastab teate.
See kasutab funktsioonist väljumiseks funktsiooni On Error GoTo.
Kui käivitate koodi ja klõpsate nuppu Tühista, kuvatakse sõnumikast.
Vea korral Jätka järgmist
Kui paned Vea korral Jätka järgmist Kui teie koodis on avaldus, siis vea sisaldavat rida ignoreeritakse ja kood jätkub.
Näiteks kui kasutaja klõpsab allolevas koodis nuppu Tühista, ei anna kood teile käitusaega, see lihtsalt lõpeb, ilma et kood midagi edasi teeks.
Mõnikord on see väga kasulik, kuid mõnel juhul võib see olla ka väga ohtlik, kuna ei tagasta sõnumit vea põhjuse kohta.