Struktura programa

Ovde će biti razmotreni samo VBA programi u okviru aplikacije MS Word.

Makroi i moduli

Najjednostavaniji program napisan u programskom jeziku VBA je procedura bez ulaznih argumenata:

Sub imeProcedure()

    naredba

    …

    naredba

End Sub

Ovakav VBA program se naziva makro. Njemu se može pridružiti prečica sa tastature, opcija u meniju ili dugme sa palete alata (eng. toolbar). Aktiviranjem prečice, opcije menija ili dugmeta sa palete alata izvršava se odgovarajući makro, tj. njegove naredbe.

Važno je zapamtiti da procedure sa bar jednim argumentom, kao i funkcije (sa i bez argumenata) NISU makroi i ne mogu se samostalno izvršavati, pa im se stoga ne mogu pridružiti ni prečica sa tastature, ni opcija u meniju,s niti dugme sa palete alata.

U opštem slučaju, naredbe procedure mogu biti pozivi drugih procedura i funkcija. Kako se vremenom broj procedura i funkcija povećava, javlja se potreba da se one organizuju u logičke celine, kako bi se lakše koristile i održavale. Stoga je sledeći korak da se procedure i funkcije grupišu u module. Jedan modul obično predstavlja skup tesno povezanih procedura i funkcija koje zajedno omogućavaju obavljanje nekog zadatka.

Prema tome, VBA program može da se posmatra kao skup potprograma (procedura i funkcija), pri čemu je jedna procedura bez argumenata (makro) istaknuta (glavna). Rad programa se svodi na izvršavanje te glavne procedure koja poziva ostale potprograme iz skupa (procedure i funkcije), a koji opet mogu pozivati neke druge (ili čak iste) potprograme iz istog skupa. Potprogrami programa mogu ne moraju biti iz istog modula.

Projekti

Kada se pokrene MS Word i njegov VB Editor, u prozoru Project Explorer (Ctrl + R) za svaki otvoreni dokument u Word-u prikazuje se po jedan istoimeni projekat u VB Editor-u. Projekat se sastoji iz 0 ili više modula (eng. Modules), klasnih modula (eng. Class Modules) i formi/formulara (eng. Forms).

Klasni modul je posebna vrsta modula kojim se definiše jedna klasa (ime klase je isto kao i ime klasnog modula).

Forma/formular je prilagođeni dijalog koji korisnik sam kreira koristeći uobičajene kontrole (tekstuelna polja (eng. TextBox), oznake (eng. Label), komandna dugmad, (eng. CommandButton), opciona/radio dugmad (eng. OptionButton), polja za potvrdu (eng. CheckBox), padajući meniji (eng. ComboBox) itd).

Sem projekata koji odgovaraju konkretnim dokumentima, prikazuje se i jedan globalni projekat Normal.

Sada se može reći da VBA program u najopštijem slučaju predstavlja skup potprograma (procedura ili funkcija) iz istog ili različitih modula jednog ili više projekata, kao i definicija klasa (klasnih modula) i formi/formulara iz jednog ili više projekata. Jedna procedura bez argumenata (makro) je istaknuta (glavna) u tom skupu i ona poziva ostale potprograme iz skupa, a svi potprogrami mogu pozivati druge potprograme, kreirati objekte klasa i raditi sa njima, kao i vršiti interakciju sa korisnicima preko formi/formulara.