Kreiranje makroa

Jedan način da se kreira makro je da se snimi neka akcija u Word-u (Microsoft Word > meni Tools > podmeni Macro > Record New Macro). Snimanje se završava klikom na dugme Stop. Potom se iz dijaloga Macros (Microsoft Word > meni Tools > podmeni Macro > Macros) izabere kreirani makro i klikom na dugme Edit otvara se prozor u kome se makro može dalje dorađivati.

Drugi način je da se u VB editoru u okviru prozora Project, među postojećim projektima pronađe ili kreira željeni projekat. Za svaki otvoreni dokument u Word-u, VB Editor prikazuje jedan projekat, a sem njih postoji globalni projekat Normal koji je uvek dostupan, čak i kada nijedan dokument nije otvoren. Svaki projekat (pa i Normal) se sastoji iz stavki (ne obavezno svih) Microsoft Word Objects, Forms, Modules, References. Ako u okviru stavke Modules ne postoji nijedan modul, potrebno je napraviti ga (meni Insert, stavka Module). Dvostrukim klikom na modul otvara se prozor u kome se mogu unositi procedure.

Mesto gde je snimljen makro utiče na to da li će korisnik moći da ga izvrši. Makroi snimljeni u projektu Normal su dostupni uvek, i korisnik može da im pridruži novo dugme na pruzi sa alatkama (toolbar), ili čak novu stavku u meniju MS Word-a. Za makroe ostalih projekata to je moguće samo pod specijalnim uslovima.

Modalni i nemodalni dijalozi

Postoje dva načina da se formular prikaže ne ekranu:

  1. kao modalni dijalog i
  2. kao nemodalni dijalog.

Dijalog je prozor koji pokreće neki već postojeći proces, tj. neki prethodno pokrenuti program. Proces koji je pokrenuo dijalog naziva se proces-roditelj, dok se sam dijalog tretira kao njegovo proces-dete. Uobičajeno je da se gašenjem procesa-roditelja istovremeno gase i svi procesi-deca koje je on pokrenuo. U slučaju koji mi razmatramo, pokrenuta instanca programa Microsoft Word je proces-roditelj, a tipičan primer dijaloga su dijalozi za otvaranje i čuvanje dokumenata (File/Open i File/Save As), ali i korisnički formulari kreirani u programu VBE (Visual Basic Editor).

Dijalog se smatra modalnim ako je njegov proces-roditelj nedostupan korisniku sve dok je taj dijalog aktivan. Tek po zatvaranju modalnog dijaloga proces-roditelj postaje ponovo dostupan korisniku. Tipičan primer modalnih dijaloga su dijalozi za otvaranje i čuvanje dokumenata (File/Open i File/Save As).

Dijalog koji omogućava da njegov proces-roditelj bude dostupan korisniku i za vreme kada je taj dijalog aktivan, naziva se nemodalni dijalog. Primer nemodalnog dijaloga u MS Word-u je dijalog za pretragu i zamenu teksta (Find/Replace).

U narednom primeru napravićemo kratku proceduru koja samo poziva prethodno napravljeni formular nazvan frmPodvlacenje. Metod Show prikazuje formular na ekranu. Ukoliko se ne navede nijedan argument pri pozivu metoda Show, podrazumeva se da se formular prikazuje kao modalni dijalog. Isti efekat ima i poziv sa argumentom vbModal:

Sub prikaziModalnuFormu()
  frmPodvlacenje.Show
  'ima isti efekat kao
  'frmPodvlacenje.Show vbModal
End Sub

Za prikaz forme kao nemodalnog dijaloga, metod Show se poziva sa argumentom vbModeless

Sub prikaziNemodalnuFormu()
  frmPodvlacenje.Show vbModeless
End Sub