Kodiranje v Excelu VBA: Delo s kodnim oknom

Ko se obvladate z Excel VBA, porabite veliko časa za delo v oknih Code. Makri, ki jih posnamete, so shranjeni v modulu, kodo Excel VBA pa lahko vnesete neposredno v modul VBA.

Minimiziranje in maksimiranje oken kode VBA

Če imate odprtih več projektov, ima lahko VBE v vsakem trenutku veliko oken kode.

Kodiranje v Excelu VBA: Delo s kodnim oknom

Preobremenitev kodnega okna ni lep pogled.

Okna kode so zelo podobna oknom delovnega zvezka v Excelu. Lahko jih pomanjšate, povečate, spremenite velikost, skrijete, preuredite itd. Večini ljudi je veliko lažje povečati okno kode, na katerem delajo. S tem boste videli več kode in preprečili, da bi vas zmotili.

Če želite povečati okno kode, kliknite gumb Povečaj v njegovi naslovni vrstici (tik ob X). Ali pa samo dvokliknite naslovno vrstico, da jo povečate. Če želite okno kode obnoviti na prvotno velikost, kliknite gumb Obnovi. Ko je okno povečano, njegova naslovna vrstica ni vidna, zato boste pod naslovno vrstico VBE našli gumb Obnovi.

Včasih boste morda želeli imeti vidna dve ali več oken kode. Na primer, morda boste želeli primerjati kodo v dveh modulih ali kopirati kodo iz enega modula v drugega. Okna lahko razporedite ročno ali izberete Okno → Ploščice vodoravno ali Okno → Ploščice navpično, da jih razporedite samodejno.

Med okni kode lahko hitro preklapljate s pritiskom na Ctrl+F6. Če ponovite to kombinacijo tipk, nadaljujete s kolesarjenjem skozi vsa odprta okna kode. Če pritisnete Ctrl+Shift+F6, se okna premikate v obratnem vrstnem redu. (Za več informacij si oglejte te bližnjice na tipkovnici Excel VBA .)

Zmanjšanje okna kode ga odstrani s poti. Prav tako lahko kliknete gumb Zapri okna (ki prikaže X) v naslovni vrstici okna kode, da zaprete okno. (Če zaprete okno, ga preprosto skrijete; ničesar ne boste izgubili.) Če ga želite znova odpreti, samo dvokliknite ustrezen predmet v oknu projekta. Mimogrede, delo s temi okni kode zveni težje, kot je v resnici.

Ustvarjanje modula VBA

Na splošno lahko modul Excel VBA vsebuje tri vrste kode:

  • Izjave: ena ali več informacijskih izjav, ki jih posredujete VBA. Na primer, lahko navedete tip podatkov za spremenljivke, ki jih nameravate uporabiti, ali nastavite nekatere druge možnosti za celoten modul. Izjave so v bistvu gospodinjske izjave. V resnici niso usmrčeni.
  • Podpostopki: niz programskih navodil, ki ob izvedbi izvedejo neko dejanje.
  • Funkcijski postopki: niz programskih navodil, ki vrne eno samo vrednost (po konceptu je podoben funkciji delovnega lista, kot je SUM).

En sam modul VBA lahko shrani poljubno število podprocedur, funkcijskih postopkov in deklaracij. No, tam je meja - približno 64.000 znakov na modul. Malo verjetno je, da se boste sploh približali omejitvi 64.000 znakov. Če pa ste, je rešitev preprosta: preprosto vstavite nov modul.

Kako boste organizirali modul VBA, je popolnoma odvisno od vas. Nekateri ljudje raje hranijo vso svojo kodo VBA za aplikacijo v enem samem modulu VBA; drugi radi razdelijo kodo na več modulov. To je osebna izbira, tako kot urejanje pohištva.

Prenos kode VBA v modul

Prazen modul VBA je kot ponarejena hrana, ki jo vidite v oknih nekaterih kitajskih restavracij; izgleda dobro, vendar vam v resnici ne pomaga. Preden lahko naredite karkoli smiselnega, morate imeti v modulu VBA nekaj kode VBA. Kodo VBA lahko dobite v modulu VBA na tri načine:

  • Neposredno vnesite kodo.
  • Uporabite Excelov snemalnik makrov, da zabeležite svoja dejanja in ta dejanja pretvorite v kodo VBA.
  • Kopirajte kodo iz enega modula in jo prilepite v drugega.

Neposreden vnos kode Excel VBA

Včasih je najboljša pot najbolj neposredna. Neposreden vnos kode vključuje ... no, neposreden vnos kode. Z drugimi besedami, kodo vnesete s tipkovnico. Vnašanje in urejanje besedila v modulu VBA deluje, kot bi lahko pričakovali. Besedilo lahko izberete, kopirate, izrežete, prilepite in naredite druge stvari.

S tipko Tab zamaknite nekatere vrstice, da bo vaša koda lažja za branje. Zamik ni potreben, je pa dobra navada. Ko boste preučevali kodiranje Excel VBA, boste razumeli, zakaj je zamikanje vrstic kode koristno.

Ena vrstica kode VBA je lahko tako dolga, kot jo potrebujete. Vendar pa boste morda želeli uporabiti znake za nadaljevanje vrstice, da razbijete dolge vrstice kode. Če želite nadaljevati eno vrstico kode (znano tudi kot stavek) iz ene vrstice v drugo, zaključite prvo vrstico s presledkom, ki mu sledi podčrtaj (_). Nato nadaljujte izjavo v naslednji vrstici. In ne pozabite na prostor. Podčrtaj, pred katerim ni presledka, ne bo opravil svojega dela.

Tukaj je primer enega stavka, razdeljenega v tri vrstice:

Selection.Sort Key1:=Obseg("A1"), _
  Vrstni red1:=xlNaraščajoče, Glava:=xlGuess, _
  Usmeritev:=xlTopToBottom

Ta stavek bi deloval popolnoma enako, če bi ga vnesli v eno vrstico (brez znakov za nadaljevanje vrstice). Upoštevajte, da sta druga in tretja vrstica tega stavka zamaknjeni. Zamik ni obvezen, vendar pomaga razjasniti dejstvo, da te vrstice niso ločeni stavki.

Beli inženirji, ki so zasnovali VBE, so predvidevali, da bodo ljudje delali napake. Zato ima VBE več stopenj razveljavitve in ponovitve. Če ste izbrisali izjavo, ki je ne bi smeli imeti, kliknite gumb Razveljavi v orodni vrstici (ali pritisnite Ctrl+Z), dokler se stavek spet ne prikaže. Po razveljavitvi lahko kliknete gumb Ponovi, da izvedete spremembe, ki ste jih razveljavili.

Ste pripravljeni vnesti kodo v resničnem življenju? Poskusite naslednje korake:

Ustvarite nov delovni zvezek v Excelu.

Pritisnite Alt+F11, da aktivirate VBE.

Kliknite ime novega delovnega zvezka v oknu Projekt.

Izberite Vstavi → Modul, da v projekt vstavite modul VBA.

V modul vnesite naslednjo kodo:

Sub GuessName()
Msg = "Je vaše ime " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
Če Ans = vbNo Potem MsgBox "Oh, ni važno."
Če Ans = vbYes Potem MsgBox "Moram biti jasnoviden!"
Končni sub

Postavite kazalec kjer koli znotraj besedila, ki ste ga vnesli, in pritisnite F5, da izvedete postopek.

F5 je bližnjica za Run → Run Sub/UserForm. Če ste pravilno vnesli kodo, Excel izvede postopek in se lahko odzovete na preprosto pogovorno okno. Besedilo v pogovornem oknu se bo razlikovalo od besedila, prikazanega tukaj.

Kodiranje v Excelu VBA: Delo s kodnim oknom

Postopek GuessName prikaže to pogovorno okno.

Ko vnesete kodo, navedeno v 5. koraku, boste morda opazili, da VBE nekaj prilagodi besedilu, ki ga vnesete. Na primer, ko vnesete stavek Sub, VBE samodejno vstavi stavek End Sub. In če izpustite presledek pred ali za znakom enakosti, VBE vstavi presledek namesto vas. Prav tako VBE spremeni barvo in velike črke nekega besedila. Vse to je povsem normalno. To je samo način VBE, da poskrbi, da so stvari čiste in berljive.

Če ste sledili prejšnjim korakom, ste pravkar napisali podpostopek VBA, znan tudi kot makro. Ko pritisnete F5, Excel izvede kodo in sledi navodilom. Z drugimi besedami, Excel oceni vsako izjavo in naredi tisto, kar ste mu naročili. (Ne dovolite, da bi vam ta novo odkrita moč padla v glavo.) Ta makro lahko izvedete poljubno število – čeprav po nekaj desetkrat izgubi svojo privlačnost.

Za zapisnik ta preprost Excelov makro uporablja naslednje koncepte:

  • Definiranje podprocedure (prva vrstica)
  • Dodeljevanje vrednosti spremenljivkam (Sporočilo in Ans)
  • Povezovanje (združevanje) niza (z uporabo & operaterja)
  • Uporaba vgrajene funkcije VBA (MsgBox)
  • Uporaba vgrajenih konstant VBA (vbYesNo, vbNo in vbYes)
  • Uporaba konstrukcije If-Then (dvakrat)
  • Končanje podprocedure (zadnja vrstica)

Uporaba snemalnika makrov Excel VBA

Drug način, kako lahko vnesete kodo v modul VBA, je tako, da posnamete svoja dejanja z uporabo snemalnika makrov Excel.

Mimogrede, zgoraj prikazanega postopka GuessName nikakor ne morete posneti. Posnamete lahko samo stvari, ki jih lahko počnete neposredno v Excelu. Prikaz sporočilnega polja ni v običajnem Excelovem repertoarju. (To je stvar VBA.) Snemalnik makrov je uporaben, vendar boste v mnogih primerih verjetno morali ročno vnesti vsaj nekaj kode.

Tukaj je primer po korakih, ki prikazuje, kako posneti makro, ki vstavi nov delovni list in skrije vse razen prvih deset vrstic in vseh razen prvih deset stolpcev. Če želite preizkusiti ta primer, začnite z novim, praznim delovnim zvezkom Excel in sledite tem korakom:

Aktivirajte delovni list v delovnem zvezku.

Vsak Excelov delovni list bo primeren.

Kliknite zavihek Razvijalec in se prepričajte, da Uporabi relativne reference ni označeno.

Ta makro je posnet z uporabo Absolutnih referenc.

Izberite Razvijalec → Koda → Posnemi makro ali kliknite ikono poleg indikatorja Pripravljenosti na levem koncu vrstice stanja.

Excel prikaže pogovorno okno Record Macro.

V pogovornem oknu Record Macro poimenujte makro TenByTen, določite, da želite, da je makro shranjen v tem delovnem zvezku, in pritisnite Shift+T za bližnjico.

Makro se lahko izvede, ko pritisnete Ctrl+Shift+T.

Kliknite V redu za začetek snemanja. Excel samodejno vstavi nov modul VBA v projekt, ki ustreza aktivnemu delovnemu zvezku.

Od te točke naprej Excel pretvori vaša dejanja v kodo VBA. Med snemanjem se ikona v vrstici stanja spremeni v majhen kvadrat. To je opomnik, da snemalnik makrov deluje. To ikono lahko tudi kliknete, da ustavite snemalnik makrov.

Kliknite ikono Nov list na desni strani zadnjega zavihka lista.

Excel vstavi nov delovni list.

Izberite celoten stolpec K (11. stolpec) in pritisnite Ctrl+Shift+puščica desno; nato z desno tipko miške kliknite kateri koli izbrani stolpec in v priročnem meniju izberite Skrij.

Excel skrije vse izbrane stolpce.

Izberite celotno vrstico 11 in pritisnite Ctrl+Shift+puščica navzdol; nato z desno tipko miške kliknite katero koli izbrano vrstico in v priročnem meniju izberite Skrij.

Excel skrije vse izbrane stolpce.

Izberite celico A1.

Izberite Razvijalec → Koda → Ustavi snemanje ali kliknite gumb Ustavi snemanje v vrstici stanja (majhen kvadrat). Excel preneha snemati vaša dejanja.

Če si želite ogledati ta na novo posneti makro, pritisnite Alt+F11, da aktivirate VBE. Poiščite ime delovnega zvezka v oknu Projekt. Vidite, da ima projekt naveden nov modul. Ime modula je odvisno od tega, ali ste imeli v delovnem zvezku še kakšne druge module, ko ste začeli snemati makro. Če niste, se modul imenuje Modul1. Za ogled okna kode za modul lahko dvokliknete modul.

Tukaj je koda, ustvarjena z vašimi dejanji:

Sub TenByTen()
'
' TenByTen Macro
'
' Bližnjica na tipkovnici: Ctrl+Shift+T
'
  Sheets.Add After:=ActiveSheet
  Stolpci("K:K").Izberite
  Obseg(Izbor, Izbor.Konec(xlToRight)).Izberi
  Selection.EntireColumn.Hidden = True
  Vrstice("11:11").Izberite
  Obseg(Izbor, Izbor.Konec(xlDown)).Izberi
  Selection.EntireRow.Hidden = True
  Obseg("A1").Izberi
Končni sub

Če želite preizkusiti ta makro, aktivirajte kateri koli delovni list in pritisnite tipko za bližnjico, ki ste jo dodelili v 4. koraku: Ctrl+Shift+T.

Če makru niste dodelili bližnjične tipke, ne skrbite. Takole lahko prikažete seznam vseh razpoložljivih makrov in zaženete tistega, ki ga želite:

Izberite Razvijalec → Koda → Makri. Ventilatorji tipkovnice lahko pritisnejo Alt+F8.

Katera koli od teh metod prikaže pogovorno okno, v katerem so navedeni vsi razpoložljivi makri.

Na seznamu izberite makro (v tem primeru TenByTen).

Kliknite gumb Zaženi.

Excel izvede makro in dobite nov delovni list z desetimi vidnimi vrsticami in desetimi vidnimi stolpci.

Med delovanjem snemalnika makrov lahko izvedete poljubno število ukazov in izvedete poljubno število dejanj. Excel vestno prevede vaša dejanja z miško in pritiske tipk v kodo VBA.

Seveda pa lahko makro uredite tudi potem, ko ga posnamete. Če želite preizkusiti svoje nove veščine, poskusite urediti makro tako, da bo vstavil delovni list z devetimi vidnimi vrsticami in stolpci – kot nalašč za sestavljanko Sudoku.

Kopiranje kode VBA

Končna metoda za pridobivanje kode v modul VBA je, da jo kopirate iz drugega modula ali z drugega mesta (na primer s spletnega mesta). Na primer, postopek pod ali funkcija, ki ga napišete za en projekt, je lahko koristen tudi v drugem projektu. Namesto da izgubljate čas s ponovnim vnašanjem kode, lahko aktivirate modul in uporabite običajne postopke kopiranja in lepljenja v odložišče. (Verjetno imate radi bližnjice na tipkovnici Ctrl+C za kopiranje in Ctrl+V za lepljenje.) Ko prilepite kodo v modul VBA, lahko kodo po potrebi spremenite.

Mimogrede, na spletu boste našli veliko primerov kode VBA. Če jih želite preizkusiti, izberite kodo v brskalniku in pritisnite Ctrl+C, da jo kopirate. Nato aktivirajte modul in pritisnite Ctrl+V, da ga prilepite.

Ko kopirate kodo s spletnega mesta, je včasih potrebno nekaj popraviti. Znaki narekovajev so lahko na primer "pametni narekovaji" in jih je treba pretvoriti v preproste narekovaje. In včasih se naokrog zvijejo dolge vrste. Napačne izjave je enostavno opaziti v VBE, ker so prikazane rdeče.


Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows Microsoft Word odpira datoteke v načinu samo za branje, zaradi česar jih je nemogoče urejati? Ne skrbite, metode so spodaj

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako odpraviti napake pri tiskanju nepravilnih dokumentov Microsoft Word Napake pri tiskanju dokumentov Word s spremenjeno pisavo, neurejenimi odstavki, manjkajočim besedilom ali izgubljeno vsebino so precej pogoste. Vendar pa ne

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Če ste med predstavitvijo uporabili pero ali označevalnik za risanje po diapozitivih PowerPoint, lahko risbe shranite za naslednjo predstavitev ali jih izbrišete, tako da boste naslednjič, ko ga pokažete, začeli s čistimi PowerPointovimi diapozitivi. Sledite tem navodilom za brisanje risb s peresom in označevalnikom: Brisanje črt ena na […]

Vsebina knjižnice slogov v SharePointu 2010

Vsebina knjižnice slogov v SharePointu 2010

Knjižnica slogov vsebuje datoteke CSS, datoteke Extensible Stylesheet Language (XSL) in slike, ki jih uporabljajo vnaprej določene glavne strani, postavitve strani in kontrolniki v SharePointu 2010. Če želite poiskati datoteke CSS v knjižnici slogov na založniškem mestu: Izberite Dejanja mesta→ Pogled Vsa vsebina spletnega mesta. Prikaže se vsebina spletnega mesta. Knjižnica Style se nahaja v […]

Oblikujte številke v tisoče in milijone v poročilih Excel

Oblikujte številke v tisoče in milijone v poročilih Excel

Ne preobremenjujte občinstva z ogromnimi številkami. V Microsoft Excelu lahko izboljšate berljivost svojih nadzornih plošč in poročil tako, da oblikujete svoje številke tako, da se prikažejo v tisočih ali milijonih.

Kako deliti in spremljati SharePointova spletna mesta

Kako deliti in spremljati SharePointova spletna mesta

Naučite se uporabljati SharePointova orodja za socialno mreženje, ki posameznikom in skupinam omogočajo komunikacijo, sodelovanje, skupno rabo in povezovanje.

Kako pretvoriti datume v julijanske oblike v Excelu

Kako pretvoriti datume v julijanske oblike v Excelu

Julijanski datumi se v proizvodnih okoljih pogosto uporabljajo kot časovni žig in hitra referenca za številko serije. Ta vrsta datumskega kodiranja omogoča trgovcem na drobno, potrošnikom in servisnim agentom, da ugotovijo, kdaj je bil izdelek izdelan in s tem starost izdelka. Julijanski datumi se uporabljajo tudi v programiranju, vojski in astronomiji. Drugačen […]

Kako ustvariti spletno aplikacijo Access

Kako ustvariti spletno aplikacijo Access

Spletno aplikacijo lahko ustvarite v Accessu 2016. Kaj je torej spletna aplikacija? No, splet pomeni, da je na spletu, aplikacija pa je le okrajšava za »aplikacijo«. Spletna aplikacija po meri je spletna aplikacija baze podatkov, do katere dostopate iz oblaka z uporabo brskalnika. Spletno aplikacijo gradite in vzdržujete v namizni različici […]

Vrstica za hitri zagon v SharePointu 2010

Vrstica za hitri zagon v SharePointu 2010

Večina strani v SharePointu 2010 prikaže seznam navigacijskih povezav v vrstici za hitri zagon na levi strani strani. Vrstica za hitri zagon prikazuje povezave do predstavljene vsebine spletnega mesta, kot so seznami, knjižnice, spletna mesta in strani za objavljanje. Vrstica za hitri zagon vključuje dve zelo pomembni povezavi: Povezava do vse vsebine spletnega mesta: […]

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Pri preprostih težavah reševalec v Excelu običajno hitro najde optimalne vrednosti spremenljivke reševalca za ciljno funkcijo. Toda v nekaterih primerih ima Solver težave pri iskanju vrednosti spremenljivke Solver, ki optimizirajo ciljno funkcijo. V teh primerih Solver običajno prikaže sporočilo ali sporočilo o napaki, ki opisuje ali razpravlja o težavi, ki […]