Excel VBA kodiranje: rad s prozorom koda

Kako postanete vješti u radu s Excel VBA, provodite puno vremena radeći u prozorima koda. Makronaredbe koje snimite pohranjene su u modulu, a Excel VBA kod možete upisati izravno u VBA modul.

Minimiziranje i maksimiziranje prozora VBA koda

Ako imate otvorenih nekoliko projekata, VBE može imati mnogo prozora koda u bilo kojem trenutku.

Excel VBA kodiranje: rad s prozorom koda

Preopterećenje prozora koda nije lijep prizor.

Prozori koda su slični prozorima radne knjige u Excelu. Možete ih minimizirati, maksimizirati, promijeniti im veličinu, sakriti, preurediti i tako dalje. Većina ljudi smatra da je mnogo lakše maksimizirati prozor koda na kojem rade. To vam omogućuje da vidite više koda i sprječava vas da vas ometaju.

Da biste povećali prozor koda, kliknite gumb Povećaj na njegovoj naslovnoj traci (odmah uz X). Ili samo dvaput kliknite na naslovnu traku da biste je povećali. Za vraćanje prozora koda na izvornu veličinu, kliknite gumb Vrati. Kada je prozor maksimiziran, njegova naslovna traka nije vidljiva, pa ćete ispod naslovne trake VBE pronaći gumb Vrati.

Ponekad ćete možda htjeti imati vidljiva dva ili više prozora koda. Na primjer, možda ćete htjeti usporediti kod u dva modula ili kopirati kod s jednog modula na drugi. Prozore možete rasporediti ručno ili odabrati Prozor → Pločica vodoravno ili Prozor → Pločica okomito da biste ih automatski rasporedili.

Možete se brzo prebacivati ​​između prozora koda pritiskom na Ctrl+F6. Ako ponovite tu kombinaciju tipki, nastavljate se kretati kroz sve otvorene prozore koda. Pritiskom na Ctrl+Shift+F6 kruži kroz prozore obrnutim redoslijedom. (Za više informacija pogledajte ove Excel VBA tipkovne prečace .)

Minimiziranje prozora koda uklanja ga s puta. Također možete kliknuti gumb Zatvori prozora (koji prikazuje X) na naslovnoj traci prozora koda da biste zatvorili prozor. (Zatvaranje prozora samo ga skriva; nećete ništa izgubiti.) Da biste ga ponovno otvorili, samo dvaput kliknite odgovarajući objekt u prozoru projekta. Usput, rad s ovim prozorima Code zvuči teže nego što zapravo jest.

Izrada VBA modula

Općenito, Excel VBA modul može sadržavati tri vrste koda:

  • Izjave: jedna ili više informativnih izjava koje dajete VBA. Na primjer, možete deklarirati vrstu podataka za varijable koje namjeravate koristiti ili postaviti neke druge opcije za cijeli modul. Deklaracije su u osnovi izjave za domaćinstvo. Oni zapravo nisu pogubljeni.
  • Podprocedure: Skup programskih uputa koje, kada se izvrše, izvode neku radnju.
  • Funkcijski postupci: Skup programskih instrukcija koji vraća jednu vrijednost (po konceptu sličan funkciji radnog lista, kao što je SUM).

Jedan VBA modul može pohraniti bilo koji broj podprocedura, funkcija funkcija i deklaracija. Pa, tu je granica - oko 64.000 znakova po modulu. Malo je vjerojatno da ćete se uopće približiti granici od 64.000 znakova. Ali ako jeste, rješenje je jednostavno: samo umetnite novi modul.

Kako ćete organizirati VBA modul u potpunosti ovisi o vama. Neki ljudi radije drže sav svoj VBA kod za aplikaciju u jednom VBA modulu; drugi vole podijeliti kod u nekoliko modula. To je osobni izbor, baš kao i slaganje namještaja.

Ubacivanje VBA koda u modul

Prazan VBA modul je poput lažne hrane koju vidite na izlozima nekih kineskih restorana; izgleda dobro, ali vam zapravo ne pomaže. Prije nego što možete učiniti bilo što smisleno, morate imati neki VBA kod u VBA modulu. VBA kod možete dobiti u VBA modul na tri načina:

  • Izravno unesite kod.
  • Koristite Excel snimač makronaredbi za snimanje svojih radnji i pretvaranje tih radnji u VBA kod.
  • Kopirajte kod iz jednog modula i zalijepite ga u drugi.

Izravan unos Excel VBA koda

Ponekad je najbolja ruta ona najizravnija. Izravan unos koda uključuje... pa, izravan unos koda. Drugim riječima, kod upisujete pomoću tipkovnice. Unos i uređivanje teksta u VBA modulu funkcionira kako biste očekivali. Možete odabrati, kopirati, izrezati, zalijepiti i raditi druge stvari s tekstom.

Upotrijebite tipku Tab da biste uvukli neke od redaka kako biste svoj kod lakše čitali. Uvlačenje nije potrebno, ali je dobra navika za stjecanje. Dok proučavate Excel VBA kodiranje, shvatit ćete zašto je uvlačenje redaka koda korisno.

Jedan redak VBA koda može biti dug onoliko koliko vam je potreban. Međutim, možda ćete htjeti upotrijebiti znakove za nastavak reda za razbijanje dugih redaka koda. Da biste nastavili jedan redak koda (također poznat kao izjava) s jednog retka na sljedeći, završite prvi redak s razmakom nakon kojeg slijedi donja crta (_). Zatim nastavite izjavu u sljedećem retku. I ne zaboravite na prostor. Znak podvlake kojemu ne prethodi razmak neće obaviti posao.

Evo primjera jedne izjave podijeljene u tri retka:

Selection.Sort Key1:=Raspon("A1"), _
  Redoslijed1:=xluzlazno, zaglavlje:=xlPogodi, _
  Orijentacija:=xlTopToBottom

Ova bi izjava imala potpuno isti način da je upisana u jednom retku (bez znakova za nastavak reda). Primijetite da su drugi i treći redak ove izjave uvučeni. Uvlačenje nije obavezno, ali pomaže razjasniti činjenicu da ovi redovi nisu zasebni iskazi.

Inženjeri s bijelim premazom koji su dizajnirali VBE predviđali su da će ljudi griješiti. Stoga VBE ima više razina poništavanja i ponavljanja. Ako ste izbrisali izjavu koju niste trebali imati, kliknite gumb Poništi na alatnoj traci (ili pritisnite Ctrl+Z) dok se izjava ponovno ne pojavi. Nakon poništavanja, možete kliknuti gumb Ponovi da izvršite promjene koje ste poništili.

Jeste li spremni unijeti neki stvarni kod? Pokušajte sljedeće korake:

Izradite novu radnu knjigu u Excelu.

Pritisnite Alt+F11 da aktivirate VBE.

Kliknite naziv nove radne knjige u prozoru Projekt.

Odaberite Umetanje → Modul za umetanje VBA modula u projekt.

Upišite sljedeći kod u modul:

Sub GuessName()
Msg = "Je li vaše ime " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
Ako je Ans = vbNo Tada MsgBox "Oh, nema veze."
Ako je Ans = vbYes Tada MsgBox "Mora da sam vidovit!"
Kraj Sub

Postavite pokazivač bilo gdje unutar teksta koji ste upisali i pritisnite F5 da izvršite postupak.

F5 je prečac za Run → Run Sub/UserForm. Ako ste ispravno unijeli kod, Excel izvršava proceduru, a vi možete odgovoriti na jednostavan dijaloški okvir. Tekst u dijaloškom okviru bit će drugačiji od teksta prikazanog ovdje.

Excel VBA kodiranje: rad s prozorom koda

Procedura GuessName prikazuje ovaj dijaloški okvir.

Kada unesete kod naveden u koraku 5, možda ćete primijetiti da VBE vrši neke prilagodbe u tekstu koji unesete. Na primjer, nakon što upišete Sub naredbu, VBE automatski umeće End Sub izraz. A ako izostavite razmak ispred ili iza znaka jednakosti, VBE ubacuje razmak umjesto vas. Također, VBE mijenja boju i velika slova nekog teksta. Ovo je sve sasvim normalno. To je samo VBE-ov način da stvari budu uredne i čitljive.

Ako ste slijedili prethodne korake, upravo ste napisali VBA Sub proceduru, također poznatu kao makronaredba. Kada pritisnete F5, Excel izvršava kod i slijedi upute. Drugim riječima, Excel procjenjuje svaku izjavu i čini ono što ste mu rekli. (Nemojte dopustiti da vam ova novootkrivena moć padne u glavu.) Ovu makronaredbu možete izvršiti bilo koji broj puta — iako ima tendenciju da izgubi svoju privlačnost nakon nekoliko desetaka puta.

Za zapisnik, ova jednostavna Excel makronaredba koristi sljedeće koncepte:

  • Definiranje podprocedure (prvi redak)
  • Dodjela vrijednosti varijablama (Poruka i Ans)
  • Nadovezivanjem (ulaskom) niz (koristeći & operatera)
  • Korištenje ugrađene VBA funkcije (MsgBox)
  • Korištenje ugrađenih VBA konstanti (vbYesNo, vbNo i vbYes)
  • Korištenje konstrukcije If-Then (dvaput)
  • Završetak podprocedure (posljednji redak)

Korištenje Excel VBA makro snimača

Drugi način na koji možete unijeti kod u VBA modul je snimanje svojih radnji pomoću Excel snimača makronaredbi.

Usput, apsolutno ne postoji način da snimite gore prikazanu proceduru GuessName. Možete snimati samo ono što možete raditi izravno u Excelu. Prikazivanje okvira s porukom nije u uobičajenom Excelovom repertoaru. (To je stvar VBA.) Makro snimač je koristan, ali u mnogim slučajevima vjerojatno ćete morati ručno unijeti barem neki kod.

Evo primjera korak po korak koji pokazuje kako snimiti makronaredbu koja umeće novi radni list i skriva sve osim prvih deset redaka i svih osim prvih deset stupaca. Ako želite isprobati ovaj primjer, počnite s novom, praznom Excel radnom knjigom i slijedite ove korake:

Aktivirajte radni list u radnoj knjizi.

Bilo koji Excel radni list će dobro doći.

Kliknite karticu Razvojni programer i provjerite da Koristi relativne reference nije označeno.

Ova makronaredba je snimljena pomoću apsolutnih referenci.

Odaberite Programer → Kod → Snimi makronaredbu ili kliknite ikonu pored indikatora Spremno na lijevom kraju statusne trake.

Excel prikazuje dijaloški okvir Record Macro.

U dijaloškom okviru Snimanje makronaredbe imenujte makronaredbu TenByTen, navedite da želite da makronaredba bude pohranjena u ovoj radnoj knjizi i pritisnite Shift+T za tipku prečaca.

Makronaredba se može izvršiti kada pritisnete Ctrl+Shift+T.

Kliknite OK za početak snimanja. Excel automatski umeće novi VBA modul u projekt koji odgovara aktivnoj radnoj knjizi.

Od ove točke nadalje, Excel pretvara vaše radnje u VBA kod. Dok snimate, ikona u statusnoj traci pretvara se u mali kvadrat. Ovo je podsjetnik da je snimač makronaredbi pokrenut. Također možete kliknuti tu ikonu da zaustavite snimanje makronaredbi.

Kliknite ikonu Novi list desno od zadnje kartice lista.

Excel umeće novi radni list.

Odaberite cijeli stupac K (11. stupac) i pritisnite Ctrl+Shift+strelica desno; zatim desnom tipkom miša kliknite bilo koji odabrani stupac i odaberite Sakrij na izborniku prečaca.

Excel skriva sve odabrane stupce.

Odaberite cijeli redak 11 i pritisnite Ctrl+Shift+strelica dolje; zatim desnom tipkom miša kliknite bilo koji odabrani red i odaberite Sakrij iz izbornika prečaca.

Excel skriva sve odabrane stupce.

Odaberite ćeliju A1.

Odaberite Programer → Kod → Zaustavi snimanje ili kliknite gumb Zaustavi snimanje na statusnoj traci (mali kvadrat). Excel prestaje bilježiti vaše radnje.

Za pregled ove novosnimljene makronaredbe pritisnite Alt+F11 da aktivirate VBE. Pronađite naziv radne knjige u prozoru projekta. Vidite da projekt ima naveden novi modul. Naziv modula ovisi o tome jeste li imali još modula u radnoj knjizi kada ste počeli snimati makronaredbu. Ako niste, modul se zove Modul1. Možete dvaput kliknuti na modul da biste vidjeli prozor koda za modul.

Evo koda generiranog vašim radnjama:

Sub Ten ByTen()
'
' TenByTen makro
'
' Tipkovnički prečac: Ctrl+Shift+T
'
  Sheets.Add After:=ActiveSheet
  Stupci("K:K").Odaberite
  Raspon(Odabir, Odabir.Kraj(xlToRight)).Odaberi
  Selection.Entire Column.Hidden = True
  Redovi("11:11").Odaberite
  Raspon(Odabir, Odabir.Kraj(xlDown)).Odaberi
  Selection.EntireRow.Hidden = True
  Raspon("A1").Odaberi
Kraj Sub

Da biste isprobali ovu makronaredbu, aktivirajte bilo koji radni list i pritisnite tipku prečaca koju ste dodijelili u 4. koraku: Ctrl+Shift+T.

Ako makronaredbi niste dodijelili tipku prečaca, ne brinite. Evo kako prikazati popis svih dostupnih makronaredbi i pokrenuti onu koju želite:

Odaberite Razvojni programer → Kod → Makronaredbe. Obožavatelji tipkovnice mogu pritisnuti Alt+F8.

Bilo koja od ovih metoda prikazuje dijaloški okvir koji navodi sve dostupne makronaredbe.

Odaberite makronaredbu na popisu (u ovom slučaju TenByTen).

Kliknite gumb Pokreni.

Excel izvršava makronaredbu i dobivate novi radni list s deset vidljivih redaka i deset vidljivih stupaca.

Možete izvršiti bilo koji broj naredbi i izvršiti bilo koji broj radnji dok je snimač makronaredbi pokrenut. Excel poslušno prevodi vaše radnje mišem i pritiske tipki u VBA kod.

I, naravno, također možete urediti makronaredbu nakon što je snimite. Da biste testirali svoje nove vještine, pokušajte urediti makronaredbu tako da umetne radni list s devet vidljivih redaka i stupaca — savršeno za sudoku slagalicu.

Kopiranje VBA koda

Konačna metoda za unos koda u VBA modul je kopiranje s drugog modula ili s nekog drugog mjesta (kao što je web stranica). Na primjer, procedura pod ili funkcija koju napišete za jedan projekt također može biti korisna u drugom projektu. Umjesto da gubite vrijeme na ponovni unos koda, možete aktivirati modul i koristiti uobičajene postupke kopiranja i lijepljenja međuspremnika. (Vjerojatno vam se sviđaju tipkovnički prečaci Ctrl+C za kopiranje i Ctrl+V za lijepljenje.) Nakon što zalijepite kod u VBA modul, možete modificirati kod ako je potrebno.

Usput, na webu ćete pronaći mnogo primjera VBA koda. Ako ih želite isprobati, odaberite kôd u svom pregledniku i pritisnite Ctrl+C da ga kopirate. Zatim aktivirajte modul i pritisnite Ctrl+V da biste ga zalijepili.

Kada kopirate kôd s web-mjesta, ponekad je potrebno popraviti. Na primjer, znakovi navodnika mogu biti "pametni navodnici" i moraju se pretvoriti u jednostavne znakove navodnika. A ponekad se okolo motaju dugi redovi. Pogrešne izjave je lako uočiti u VBE-u jer se pojavljuju crvenom bojom.


Kako blokirati Microsoft Word da otvara datoteke u načinu rada samo za čitanje u sustavu Windows

Kako blokirati Microsoft Word da otvara datoteke u načinu rada samo za čitanje u sustavu Windows

Kako blokirati Microsoft Word da otvara datoteke u načinu rada samo za čitanje u sustavu Windows Microsoft Word otvara datoteke u načinu rada samo za čitanje, što onemogućuje njihovo uređivanje? Ne brinite, metode su navedene u nastavku

Kako popraviti pogrešan ispis Microsoft Word dokumenata

Kako popraviti pogrešan ispis Microsoft Word dokumenata

Kako popraviti pogreške u ispisu netočnih Microsoft Word dokumenata Pogreške u ispisu Word dokumenata s promijenjenim fontovima, neurednim odlomcima, nedostajućim tekstom ili izgubljenim sadržajem vrlo su česte. Međutim, nemojte

Izbrišite crteže olovkom i markerom na svojim PowerPoint slajdovima

Izbrišite crteže olovkom i markerom na svojim PowerPoint slajdovima

Ako ste upotrijebili olovku ili marker za crtanje na PowerPoint slajdovima tijekom prezentacije, možete spremiti crteže za sljedeću prezentaciju ili ih izbrisati tako da ćete sljedeći put kada ih pokažete početi s čistim PowerPoint slajdovima. Slijedite ove upute za brisanje crteža olovkom i markerom: Brisanje linija jedan na […]

Sadržaj biblioteke stilova u sustavu SharePoint 2010

Sadržaj biblioteke stilova u sustavu SharePoint 2010

Biblioteka stilova sadrži CSS datoteke, datoteke Extensible Stylesheet Language (XSL) i slike koje koriste unaprijed definirane glavne stranice, izgledi stranica i kontrole u SharePointu 2010. Da biste locirali CSS datoteke u biblioteci stilova web-mjesta za objavljivanje: Odaberite Radnje web-mjesta→Prikaz Sav sadržaj web-mjesta. Pojavljuje se sadržaj stranice. Knjižnica Style nalazi se u […]

Formatirajte brojeve u tisućama i milijunima u Excel izvješćima

Formatirajte brojeve u tisućama i milijunima u Excel izvješćima

Nemojte zatrpavati svoju publiku ogromnim brojevima. U Microsoft Excelu možete poboljšati čitljivost svojih nadzornih ploča i izvješća formatiranjem brojeva tako da se prikazuju u tisućama ili milijunima.

Kako dijeliti i pratiti SharePoint web-mjesta

Kako dijeliti i pratiti SharePoint web-mjesta

Naučite kako koristiti SharePointove alate za društveno umrežavanje koji pojedincima i grupama omogućuju komunikaciju, suradnju, dijeljenje i povezivanje.

Kako pretvoriti datume u julijanske formate u Excelu

Kako pretvoriti datume u julijanske formate u Excelu

Julijanski datumi se često koriste u proizvodnim okruženjima kao vremenska oznaka i brza referenca za broj serije. Ova vrsta datumskog kodiranja omogućuje trgovcima na malo, potrošačima i uslužnim agentima da identificiraju kada je proizvod napravljen, a time i starost proizvoda. Julijanski datumi se također koriste u programiranju, vojsci i astronomiji. Drugačiji […]

Kako stvoriti Access web aplikaciju

Kako stvoriti Access web aplikaciju

Možete izraditi web-aplikaciju u Accessu 2016. Dakle, što je uopće web-aplikacija? Pa, web znači da je online, a aplikacija je samo skraćenica za "aplikaciju". Prilagođena web-aplikacija je online aplikacija baze podataka kojoj se pristupa iz oblaka pomoću preglednika. Vi gradite i održavate web-aplikaciju u verziji za stolna računala […]

Traka za brzo pokretanje u sustavu SharePoint 2010

Traka za brzo pokretanje u sustavu SharePoint 2010

Većina stranica u sustavu SharePoint 2010 prikazuje popis navigacijskih veza na traci za brzo pokretanje na lijevoj strani stranice. Traka za brzo pokretanje prikazuje veze na istaknuti sadržaj web-mjesta kao što su popisi, knjižnice, web-mjesta i stranice za objavljivanje. Traka za brzo pokretanje uključuje dvije vrlo važne veze: vezu za sav sadržaj web-mjesta: […]

Što znače poruke o greškama Solvera u Excelu?

Što znače poruke o greškama Solvera u Excelu?

Za jednostavne probleme, Solver u Excelu obično brzo pronalazi optimalne vrijednosti varijable Solvera za funkciju cilja. No, u nekim slučajevima, Solver ima problema s pronalaženjem vrijednosti varijable Solvera koje optimiziraju funkciju cilja. U tim slučajevima, Solver obično prikazuje poruku ili poruku o pogrešci koja opisuje ili raspravlja o problemu koji […]