Najbolji VBA vodič (za početnike) koji će vam ikada trebati

VBA programska(VBA programming) platforma koja se izvodi u gotovo svim proizvodima Microsoft Officea(Microsoft Office) jedan je od najmoćnijih alata koje svatko može koristiti za poboljšanje korištenja tih proizvoda.

Ovaj VBA vodič za početnike pokazat će vam kako dodati izbornik za razvojne programere(Developer) vašoj Office aplikaciji, kako ući u prozor VBA uređivača i kako funkcioniraju osnovne VBA izjave i petlje kako biste mogli početi koristiti VBA u Excelu(Excel) , Wordu(Word) , Powerpointu(Powerpoint) , Outlook i OneNote .

Ovaj VBA vodič koristi najnoviju verziju proizvoda Microsoft Officea(Microsoft Office) . Ako imate stariju verziju, možda ćete vidjeti neke male razlike u odnosu na snimke zaslona.

Kako omogućiti i koristiti VBA uređivač(How To Enable & Use The VBA Editor)

U bilo kojem od Officeovih(Office) proizvoda korištenih u ovom vodiču, možda ćete primijetiti da nemate referentni izbornik za razvojne programere(Developer) . Izbornik programera dostupan je samo u Excelu(Excel) , Wordu(Word) , Outlooku(Outlook) i Powerpointu(Powerpoint) . OneNote ne nudi alat za uređivanje VBA koda iz aplikacije, ali još uvijek možete referencirati OneNote API za interakciju s OneNoteom(OneNote) iz drugih programa sustava Office

Naučit ćete kako to učiniti u našem nadolazećem Vodiču za napredni VBA .(Advanced VBA)

  • Da biste omogućili izbornik Razvojni programer(Developer) u bilo kojem uredskom proizvodu, odaberite izbornik Datoteka(File) i odaberite Opcije(Options) s lijevog navigacijskog izbornika. 
  • Vidjet ćete skočni izbornik s opcijama . (Options)Odaberite Prilagodi vrpcu(Customize Ribbon) na lijevom navigacijskom izborniku.

Lijevi popis uključuje sve dostupne izbornike i naredbe izbornika dostupne u toj Office aplikaciji. Popis s desne strane su oni koji su trenutno dostupni ili aktivirani.

  • Trebali biste vidjeti Developer na popisu s desne strane, ali neće biti aktiviran. Samo(Just) označite potvrdni okvir kako biste aktivirali izbornik programera(Developer) .

  • Ako s desne strane ne vidite Developer dostupan, promijenite lijevu Odabir naredbi(Choose commands) iz padajućeg izbornika u Sve naredbe(All Commands) . Na popisu pronađite Developer i odaberite (Developer)Add>> u sredini da dodate taj izbornik na vrpcu(Ribbon) .
  • Odaberite U redu(OK) kada završite.
  • Nakon što je izbornik Programer(Developer) aktivan, možete se vratiti na glavni prozor aplikacije i odabrati Programer(Developer) s gornjeg izbornika. 
  • Zatim odaberite Prikaži kod(View Code) iz grupe Kontrole(Controls) na vrpci da otvorite prozor VBA uređivača.(VBA)

  • Ovo će otvoriti prozor VBA editora u koji možete upisati kod koji ćete naučiti u sljedećih nekoliko odjeljaka.

  • Pokušajte dodati izbornik Developer u nekoliko Officeovih(Office) aplikacija koje koristite svaki dan. Kada vam bude udobno otvoriti prozor VBA uređivača, nastavite na sljedeći odjeljak ovog vodiča.

Opći savjeti za VBA programiranje za početnike(General VBA Programming Tips for Beginners)

Primijetit ćete kada se otvori VBA uređivač, opcije navigacije na lijevoj ploči izgledaju drugačije od jedne Office aplikacije do druge.

To je zato što dostupni objekti na koje možete postaviti VBA kod ovise o tome koji objekti postoje u aplikaciji. Na primjer, u Excelu(Excel) možete dodati VBA kod u radnu knjigu ili objekte lista. U Wordu(Word) možete dodati VBA kod u dokumente. U Powerpointu(Powerpoint) samo na module.

Stoga nemojte biti iznenađeni različitim jelovnicima. Struktura i sintaksa VBA koda ista je u svim aplikacijama. Jedina razlika su objekti koje možete referencirati i radnje koje možete poduzeti na tim objektima putem VBA koda.

Prije nego što uronimo u različite objekte i radnje koje možete poduzeti na njima putem VBA koda, pogledajmo najčešću VBA strukturu i sintaksu koju možete koristiti kada pišete VBA kod.

Gdje staviti VBA kod(Where To Put VBA Code)

Kada ste u VBA uređivaču, trebate upotrijebiti dva padajuće okvira na vrhu prozora za uređivanje kako biste odabrali objekt kojem želite priložiti kod i kada želite da se kod pokrene.

Na primjer, u Excelu(Excel) , ako odaberete Radni list(Worksheet) i Aktiviraj(Activate) , kod će se pokrenuti svaki put kad se radni list otvori. 

Ostale radnje radnog lista koje možete upotrijebiti za pokretanje VBA koda uključuju kada se radni list promijeni, kada je zatvoren (deaktiviran), kada se izračun radnog lista pokrene i još mnogo toga.

Kada dodajete VBA kod u uređivač, uvijek stavite svoj VBA kod na objekt i koristite ispravnu radnju koju želite upotrijebiti za pokretanje tog koda.

VBA IF izjave(VBA IF Statements)

Naredba IF radi u VBA -u baš kao što radi u bilo kojem drugom programskom jeziku.

Prvi dio IF izjave razmatra je li uvjet ili skup uvjeta istinit. Ovim se uvjetima može pridružiti AND ili OR operator da ih poveže.

Jedan primjer bi bio provjera je li ocjena u proračunskoj tablici iznad ili ispod "prolazne" ocjene i dodjeljivanje statusa prolaza ili neuspjeha drugoj ćeliji.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Ako ne želite da se cijeli izraz nalazi u jednom retku, možete ga podijeliti u više redaka dodavanjem simbola "_" na kraju redaka.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Korištenje ove tehnike često može učiniti kod mnogo lakšim za čitanje i otklanjanje pogrešaka.

VBA za sljedeće petlje(VBA For Next Loops)

IF izjave su izvrsne za pojedinačne usporedbe, kao što je gornji primjer gledanja u jednu ćeliju. Ali što ako želite proći kroz cijeli niz ćelija i napraviti istu IF naredbu za svaku?

U ovom slučaju trebat će vam petlja  FOR .

Da biste to učinili, trebali biste upotrijebiti duljinu raspona i proći kroz tu duljinu prema broju redaka koji sadrže podatke.

Da biste to učinili, morate definirati varijable raspona i ćelije i proći kroz njih. Također ćete morati definirati brojač kako biste rezultate mogli ispisati u odgovarajući redak. Dakle, vaš VBA kod bi prvo imao ovu liniju.

Dim rng As Range, ćelija As Range (Dim rng As Range, cell As Range)
Dim rowCounter kao cijeli broj(Dim rowCounter as Integer)

Definirajte veličinu raspona na sljedeći način. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Konačno, možete stvoriti svoju FOR petlju kako biste prošli kroz svaku ćeliju u tom rasponu i izvršili usporedbu.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Nakon što se ova VBA skripta(VBA script) pokrene, rezultate ćete vidjeti u stvarnoj proračunskoj tablici.

VBA while petlje(VBA While Loops)

Dok petlja(Loop) također prolazi kroz niz naredbi, baš kao petlja FOR , ali uvjet za nastavak petlje je uvjet koji ostaje istinit.

Na primjer, možete napisati istu petlju FOR iznad, kao petlju WHILE , jednostavnim korištenjem varijable rowCounter kako slijedi.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Napomena: ograničenje završetka rng.Count + 2 je potrebno jer brojač redaka počinje na 2 i treba završiti u retku 7 gdje završavaju podaci. Međutim, broj raspona (B2:B7) je samo 6, a petlja While završit će tek kada brojač bude VEĆI(GREATER) od brojača – tako da posljednja vrijednost brojača redaka mora biti 8 (ili rng.Count + 2).

Također možete postaviti while petlju na sljedeći način:

While rowCounter <= rng.Count + 1

Možete samo povećati broj raspona (6) za 1, jer kada varijabla rowCounter dosegne kraj podataka (redak 7), petlja može završiti.

VBA Do While i Do Until petlje(VBA Do While and Do Until Loops)

Do While i Do Until petlje su gotovo identične petlji While, ali rade malo drugačije.

  • Dok petlja(While Loop) provjerava je li uvjet istinit na početku petlje.
  • Petlja Do-While(Do-While Loop) provjerava je li uvjet istinit nakon izvršenja naredbi u petlji.
  • Petlja Do-Until(Do-Until Loop) provjerava je li uvjet i dalje lažan nakon izvršenja petlje.

U ovom slučaju prepisali biste gornju petlju While na sljedeći način, kao Do-While petlju.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

U ovom se slučaju logika ne mijenja puno, ali ako želite biti sigurni da se logička usporedba odvija nakon što se svi iskazi izvedu (dopuštajući im da se svi izvode bez obzira na sve barem jednom), onda Do-While ili petlja Do-Until je prava opcija.

VBA Odaberite Izjave slučaja(VBA Select Case Statements)

Konačna vrsta logičke izjave koju ćete morati razumjeti da biste počeli strukturirati svoj VBA kod su naredbe Select Case .

S obzirom na gornji primjer, recimo da želite imati metodu ocjenjivanja koja nije samo neuspješan prolaz. Umjesto toga, želite dodijeliti slovnu ocjenu od A do F.

To možete učiniti sljedećom izjavom Select Case :

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

Rezultirajuća proračunska tablica nakon što se ova VBA skripta pokrene izgleda kao ona ispod.

Sada znate sve što trebate znati da biste počeli koristiti VBA u svojim Microsoft Office aplikacijama.



About the author

Računalni sam tehničar koji godinama radi s Androidom i uredskim softverom. Također podučavam ljude kako koristiti Mac računala zadnjih 5 godina. Ako tražite nekoga tko zna kako popraviti stvari na vašem računalu, vjerojatno vam mogu pomoći!



Related posts