VBA - Visual Basic Editori (VBE) avamine ja kasutamine Excelis

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. 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.
  2. 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).
  3. 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.
  4. 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.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave