You are on page 1of 17

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

ABC Visual Basic dla


aplikacji w Office XP PL
Autorzy: Edward C. Willett, Steve Cummings
Tumaczenie: Bogdan Czogalik
ISBN: 83-7197-829-4
Format: B5, stron: 216

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Jeste znuony wykonywaniem powtarzajcych si czynnoci w Wordzie czy Excelu?


Zmu do nich swj komputer. Przejmij kontrol nad MS Office i setkami innych
programw. Dostosuj je do swoich potrzeb za pomoc Visual Basic for Applications
(VBA) prostego i skutecznego jzyka programowania, opartego na popularnym Visual
Basicu. Jeli czsto wprowadzasz dane do arkusza Excela moesz stworzy specjalny
formularz, ktry nie tylko uatwi ich wpisywanie, ale take sprawdzi ich poprawno.
Jeeli w dokumencie Worda potrzebna jest funkcja dostpna tylko w Excelu, dziki VBA
moesz jej uy. ABC Visual Basic dla aplikacji w Office XP PL jest przeznaczon dla
pocztkujcych ksik, dziki ktrej dowiesz si, jak mona w peni wykorzysta
wszystkie moliwoci pakietu Office XP.
Dziki ksice:

dowiesz si, czym jest VBA


nauczysz posugiwa si edytorem VBA
poznasz zasady pisania programw w tym jzyku
wejdziesz w wiat programowania obiektowego
nauczysz si usuwa bdy z programw
stworzysz wasne okna dialogowe i formularze
poznasz sposoby tworzenia kompletnych aplikacji
dowiesz si, jak rozpowszechnia wasne programy

Spis treci
Wprowadzenie ...................................................................................9
Kilka uwag o VBA..............................................................................................................9
Krtka historia VBA .....................................................................................................9
VBA jako standard......................................................................................................10

Rozdzia 1. Visual Basic dla Aplikacji .................................................................11


Edytor jzyka Visual Basic dla Aplikacji .........................................................................11
Modu kodu .......................................................................................................................11
VBA przegld...............................................................................................................13
VBA pierwsze kroki.....................................................................................................15
Makra to programy VBA ............................................................................................15
VBA to nie tylko makra..............................................................................................16
VBA narzdzie do programowania obiektowego ........................................................17
Obiekty jzyka VBA...................................................................................................18
Modele obiektowe.......................................................................................................18
Technologia ActiveX a VBA ............................................................................................18
Formanty ActiveX ......................................................................................................18
Automatyzacja ActiveX..............................................................................................20
Serwery i kontrolery automatyzacji ............................................................................20
Wicej informacji o VBA .................................................................................................20

Rozdzia 2. Edytor jzyka VBA ...........................................................................23


rodowisko tworzenia programw....................................................................................23
Menu edytora jzyka VBA .........................................................................................23
Praca z paskami narzdzi ............................................................................................24
Skrty klawiaturowe ...................................................................................................25
Zarzdzanie oknami ..........................................................................................................26
Moduy kodu, formularze oraz okna wspomagajce wizualne programowanie.........26
Wywietlanie i ukrywanie okien.................................................................................27
Okna, ktre mona i ktrych nie mona zadokowa ..................................................27
Zapisywanie ukadu okien ..........................................................................................29
Zarzdzanie projektami .....................................................................................................29
Otwieranie okna Project..............................................................................................29
Okno Project ...............................................................................................................29
Waciwoci projektu..................................................................................................31
Przegldarka obiektw ......................................................................................................33
Uruchamianie przegldarki obiektw .........................................................................33
Przegldanie obiektw ................................................................................................34
Szukanie obiektw ......................................................................................................35
Przegldarka obiektw pomaga pisa kod..................................................................35

ABC Visual Basic dla aplikacji w Office XP PL


Tajemnice pisania kodu.....................................................................................................36
Otwieranie moduu kodu.............................................................................................36
Tworzenie nowego moduu kodu................................................................................36
Pisanie kodu ................................................................................................................36
Pomoc przy wpisywaniu kodu ....................................................................................39
Okno Properties.................................................................................................................42
Wywietlanie okna Properties.....................................................................................43
Zmiana nazwy projektu lub moduu ...........................................................................43
Okna suce do usuwania bdw z programw .............................................................44

Rozdzia 3. Kod VBA..........................................................................................45


Czci skadowe programu................................................................................................45
Przykadowy program.................................................................................................45
Instrukcje, procedury, moduy, projekty.....................................................................47
Co to jest program?.....................................................................................................47
Wicej o projektach ....................................................................................................47
Praca z moduami........................................................................................................48
Pisanie procedur..........................................................................................................50
Instrukcje VBA ...........................................................................................................55
Etykieta VBA ....................................................................................................................56
Zasady tworzenia nazw zmiennych i obiektw ..........................................................57
Konwencje dotyczce tworzenia nazw zmiennych i obiektw...................................57
Czytelny kod ...............................................................................................................57
Komentarz...................................................................................................................59
Zmienne.............................................................................................................................61
Deklarowanie zmiennych............................................................................................61
Gdzie deklarowa zmienne? .......................................................................................61
Kiedy deklarowa zmienne? .......................................................................................62
Typy danych................................................................................................................62
Okrelanie zakresu zmiennej ......................................................................................64
Deklarowanie wielu zmiennych w jednym wierszu ...................................................65
Operacja przypisania wartoci do zmiennej ...............................................................66
Wyraenia ...................................................................................................................67
Co znajduje si w zmiennej, zanim przypiszesz do niej warto?..............................67
Praca ze staymi.................................................................................................................68
Deklarowanie staych..................................................................................................68
Zalety staych ..............................................................................................................69
Inne zastosowania staych...........................................................................................69
Operatory...........................................................................................................................70
Kolejno wykonywania operacji w wyraeniach......................................................70
Porwnywanie wartoci ..............................................................................................71
Konkatenacja acuchw znakw...............................................................................73
Typy danych w szczegach..............................................................................................74
Konwersja typw danych............................................................................................74
Typ danych Variant.....................................................................................................74
Numeryczne typy danych ...........................................................................................75
Kiedy uywa zmiennych typu Boolean?...................................................................75
Wartoci walutowe......................................................................................................76
Praca z datami i godzinami .........................................................................................76
acuchy znakw .......................................................................................................78
Tablice...............................................................................................................................78
Elementy tablicy .........................................................................................................79
Wymiary tablicy..........................................................................................................79
Deklarowanie tablicy ..................................................................................................79
Dostp do elementw tablicy......................................................................................81

Spis treci

5
Funkcje i instrukcje wbudowane.......................................................................................82
Instrukcje, funkcje, metody.........................................................................................82
Kategorie wbudowanych instrukcji, funkcji i metod..................................................83
Kontrola przepywu programu ..........................................................................................84
Anatomia struktury kontrolujcej przepyw programu...............................................84
Zagniedone struktury kontrolujce przepyw programu .........................................84
Wyraenia warunkowe................................................................................................85
Instrukcja IfThenElse ................................................................................................86
Posta podstawowa: IfThen ....................................................................................86
Jednowierszowa instrukcja IfThen .........................................................................86
Instrukcja IfThenElse w dziaaniu ......................................................................87
Wicej warunkw w instrukcji IfThenElse.........................................................87
Struktura Select Case ........................................................................................................89
Tworzenie struktury Select Case ................................................................................89
Przykadowa struktura Select Case.............................................................................89
Instrukcja Case Else....................................................................................................90
Wicej o instrukcjach Case struktury Select Case......................................................90
Tworzenie ptli..................................................................................................................91
Ptla DoLoop w dziaaniu.......................................................................................91
Instrukcja Exit Do .......................................................................................................94
Ptla Do bez sowa kluczowego While lub Until .......................................................95
Ptla ForNext ..........................................................................................................95
Ptla For EachNext .................................................................................................98
Instrukcja GoTo.................................................................................................................98
Instrukcja GoTo w dziaaniu.......................................................................................99
Uwagi o instrukcji GoTo ............................................................................................99

Rozdzia 4. Programowanie obiektowe ...............................................................101


Co to jest obiekt?.............................................................................................................101
Komponenty aplikacji pakietu Office XP s obiektami ...........................................101
Przykady obiektw ..................................................................................................101
Praktyczna definicja obiektu.....................................................................................102
Klasy a obiekty .........................................................................................................102
Co to jest model obiektowy?.....................................................................................103
Formularze s obiektami...........................................................................................104
Uywanie obiektw w kodzie .........................................................................................105
Poznawanie obiektw ...............................................................................................106
Waciwoci obiektw ..............................................................................................106
Metody ......................................................................................................................108
Zdarzenia...................................................................................................................109
Praca z obiektami......................................................................................................110
Tworzenie zmiennych obiektowych .........................................................................111
Tworzenie nowych obiektw....................................................................................113
Instrukcja With..........................................................................................................114
Porwnywanie referencji obiektowych.....................................................................115
Zarzdzanie danymi za pomoc kolekcji..................................................................115
Moduy klas.....................................................................................................................118
Tworzenie moduu klasy...........................................................................................119
Skadniki definicji klasy ...........................................................................................119
Obiekt Termostat w dziaaniu...................................................................................121

Rozdzia 5. Tworzenie bezbdnych programw .................................................123


Typy bdw....................................................................................................................123
Usuwanie bdw skadniowych...............................................................................123
Usuwanie bdw......................................................................................................124

ABC Visual Basic dla aplikacji w Office XP PL


Funkcja Auto Data Tips ..................................................................................................131
Okno Immediate..............................................................................................................132
Okno Locals ....................................................................................................................134
Praca z oknem Locals ...............................................................................................134
Po co edytowa wartoci zmiennych? ......................................................................135
Jak edytuje si wartoci zmiennych? ........................................................................135
Okno Watch.....................................................................................................................136
Rnice midzy oknem Locals a oknem Watch .......................................................137
Dodawanie wyrae do ledzenia.............................................................................137
Praca z oknem Add Watch........................................................................................138
Edytowanie ledzonych wyrae..............................................................................138
Definiowanie punktw przerwania w oknie Add Watch .............................................139
Instrukcja On Error oraz obiekt Err.................................................................................139
Skd si bior bdy? ................................................................................................140
Jak dziaa kod odpowiedzialny za obsug bdw?.................................................140
Jak napisa kod odpowiedzialny za obsug bdw? ..............................................141

Rozdzia 6. Tworzenie okien dialogowych .........................................................145


Proste okna dialogowe ....................................................................................................145
Okna komunikatw...................................................................................................145
Funkcja InputBox......................................................................................................148
Projektowanie formularzy ...............................................................................................149
Uruchamianie formularzy .........................................................................................149
Ile formularzy powinien zawiera program? ............................................................150
Drukowanie formularzy ............................................................................................150
Praca z formularzami ......................................................................................................150
Tworzenie formularza...............................................................................................150
Dodawanie formantw do formularza ......................................................................151
Waciwoci formularzy i formantw .............................................................................151
Okno Properties ........................................................................................................152
Pomoc na temat waciwoci ....................................................................................153
Zmiana wartoci waciwoci ...................................................................................153
Wybierz waciwy obiekt..........................................................................................154
Najwaniejsze waciwoci formularzy i formantw ...............................................154
Edycja formantw ...........................................................................................................156
Praca z siatk...................................................................................................................157
Formatowanie formantw ...............................................................................................158
Menu Format.............................................................................................................158
Pasek narzdzi UserForm .........................................................................................158
Grupowanie formantw ............................................................................................159
Kolejno formantw na stosie obiektw .................................................................159
Formatowanie zestaww formantw ........................................................................160
Inne polecenia menu Format.....................................................................................161
Praca z formantami..........................................................................................................162
Kolejno dostpu do formantw .............................................................................162
Klawisze dostpu ......................................................................................................163
Sekrety formantw ..........................................................................................................163
Etykiety .....................................................................................................................164
Pola tekstowe ............................................................................................................165
Przyciski polece ......................................................................................................167
Ramki........................................................................................................................168
Tworzenie okien dialogowych z kartami..................................................................169
Grupy opcji ...............................................................................................................170
Pola wyboru oraz przeczniki..................................................................................171

Spis treci

7
Lista wyboru i lista rozwijana...................................................................................172
Formanty, dziki ktrym mona wybiera warto..................................................174
Dodawanie kodu do formularza ......................................................................................175
Wczytywanie i wywietlanie formularzy..................................................................176
Formularz modalny i niemodalny.............................................................................178
Odwoywanie si do formularza za pomoc zmiennej .............................................178
Ukrywanie formularza ..............................................................................................179
Usuwanie formularza z pamici operacyjnej............................................................179
Zdarzenia formularza i formantw..................................................................................179
Podstawowe zdarzenia ..............................................................................................179
Dodawanie kodu do zdarze.....................................................................................180
Skadnia procedury zdarzenia ...................................................................................181
Zdarzenie Click.........................................................................................................182
Zdarzenia Change, BeforeUpdate oraz AfterUpdate ................................................183
Zdarzenia KeyPress, KeyDown oraz KeyUp............................................................184
Projektowanie okien dialogowych ..................................................................................184
Przycisk Zamknij lub Anuluj ....................................................................................184
Przycisk OK ..............................................................................................................185
Sprawdzanie poprawnoci danych............................................................................186
Modyfikowanie waciwoci formularzy i formantw .............................................188
Formanty ActiveX...........................................................................................................189
Praca z formantami ActiveX.....................................................................................189
Formanty ActiveX w programach VBA ...................................................................191
Niewidoczne formanty ActiveX ...............................................................................191

Rozdzia 7. Tworzenie aplikacji ........................................................................193


Tworzenie aplikacji a technologia COM ........................................................................193
Tworzenie programu.................................................................................................195
Automatyzacja pakietu Office XP ............................................................................196
Budowanie dodatkw......................................................................................................198
Tworzenie dodatku dla konkretnej aplikacji.............................................................199
Tworzenie dodatku COM .........................................................................................199
Waciwo niestandardowa w roli zmiennej .................................................................200
Certyfikat cyfrowy ..........................................................................................................201
Ochrona kodu projektu....................................................................................................202
Office XP Developer Edition ..........................................................................................202
Rozpowszechnianie programw .....................................................................................202
Rozpowszechnianie baz danych aplikacji Access...........................................................203

Skorowidz.........................................................................................................205

Rozdzia 1.

Visual Basic dla Aplikacji


Pakiet Office XP, cho wyposaony w wiele narzdzi i funkcji, nie moe zaspokoi potrzeb wszystkich uytkownikw std popularno jzyka VBA. Jeeli chcesz dostosowa do swoich potrzeb, na przykad, aplikacj Word, moesz skorzysta z narzdzi
do programowania w jzyku Visual Basic dla Aplikacji (VBA). VBA pozwala tworzy
zarwno proste, jak i zoone programy wykorzystujce ukryte moliwoci pakietu
Office XP.

Edytor jzyka Visual Basic dla Aplikacji


Rysunek 1.1 przedstawia edytor jzyka Visual Basic dla Aplikacji. Praca z tym edytorem zajmuje wikszo czasu, gdy tworzymy programy usprawniajce dziaanie pakietu Office XP. Jedn z zalet VBA jest to, e umiejtnoci zdobyte podczas nauki programowania w jednej aplikacji mona wykorzysta podczas programowania w innej.
Rozdzia 2. omawia edytor jzyka VBA szczegowo. Przed uruchomieniem edytora
naley najpierw uruchomi jedn z aplikacji pakietu Office XP lub inn aplikacj, do
ktrej doczono VBA edytora nie mona uruchomi bez uruchomienia jego aplikacji macierzystej. Po uruchomieniu edytor jzyka VBA dziaa jak osobna aplikacja.
Kiedy jednak uruchomisz procedur napisan w edytorze jzyka VBA, efekty jej dziaania s natychmiast widoczne w aplikacji macierzystej.

Modu kodu
Aby zapozna si z jzykiem VBA, napiszemy bardzo prost krtk procedur. Mimo
swojej prostoty, procedura ta nie jest zupenie bezuyteczna. Wykonaj nastpujce
czynnoci:
1. Uruchom program Word.
2. Aby uruchomi edytor jzyka VBA, nacinij kombinacj klawiszy Alt+F11.

12

ABC Visual Basic dla aplikacji w Office XP PL

Rysunek 1.1.
Edytor jzyka Visual
Basic dla Aplikacji
zawiera okno
Project, okno
Properties, modu
kodu, pasek menu
oraz pasek narzdzi
Standard

3. W oknie Project zaznacz (kliknij) element Normal odpowiadajcy szablonowi

programu Word Normal.dot.


4. Aby wstawi modu kodu, z menu Insert wybierz pozycj Module. Modu ten

otrzyma nazw Module1.


5. W module kodu Module1 wpisz wiersz kodu 

 

i nacinij klawisz Enter. W ten sposb poinformujesz VBA, e chcesz napisa


podprogram.
6. Zwr uwag, e VBA doda nawiasy do pierwszego wiersza kodu, a take
dopisa wiersz kodu . Kursor zosta umieszczony midzy pierwszym

a ostatnim wierszem procedury. Wpisz poniszy wiersz kodu midzy pierwszym


(

  ) a ostatnim wierszem () procedury:

  
 

7. Nacinij klawisz Enter. Zwr uwag, e VBA sformatowa sowa kluczowe


  , 
  oraz  , zmieniajc pierwsz liter kadego z nich

na wielk liter.
8. Aby uruchomi procedur WywietlWersjAplikacji, upewnij si, e kursor jest

w niej umieszczony, i nacinij klawisz F5. VBA wywietli okno komunikatu


z numerem wersji programu Word, z ktrego korzystasz (rysunek 1.2).
9. Aby zapisa procedur w szablonie Normal.dot, z menu File wybierz pozycj

Save Normal. Aby powrci do programu Word, z menu File wybierz pozycj
Close and Return to Microsoft Word.
Procedur zapisan w szablonie Normal.dot mona uruchomi w dowolnej chwili. W tym
celu z menu Narzdzia wybierz pozycj Makro, a nastpnie pozycj Makra. Word
otworzy okno dialogowe Makra. Zaznacz nazw procedury (makra), ktr chcesz uruchomi, i kliknij przycisk Uruchom.

Rozdzia 1. Visual Basic dla Aplikacji

13

Rysunek 1.2.
Efekt dziaania
procedury VBA
(okno komunikatu
z numerem wersji
programu Word)

VBA przegld
Oto krtki przegld gwnych cech jzyka VBA stosowanego w pakiecie Office XP:
 Kada aplikacja pakietu Office XP posiada edytor jzyka VBA. Oznacza to,

e kod mona przenosi z jednej aplikacji do drugiej.


 Kada aplikacja pakietu Office XP posiada i udostpnia wasny model

obiektowy. Aplikacj Word mona kontrolowa, na przykad, z poziomu


aplikacji Excel (obiekty, modele obiektowe i manipulowanie nimi omawiamy
w dalszej czci tego rozdziau). Niektre obiekty, jak CommandBar i Assistant,
nie nale do modelu obiektowego pojedynczej aplikacji, ale do modelu
obiektowego pakietu Office. VBA jest serwerem automatyzacji umoliwiajcym
tworzenie dodatkw usprawniajcych prac w rodowisku tworzenia programw.
 Edytor jzyka VBA jest zintegrowanym rodowiskiem tworzenia

programw. Jest to miejsce, w ktrym tworzy si i testuje moduy i formularze.


Edytor jzyka VBA jest bardzo podobny do rodowiska tworzenia programw
jzyka VB.
 Kada aplikacja pakietu Office XP udostpnia prawie jednakowe narzdzia

do tworzenia programw. Aplikacje, do ktrych doczono VBA, w tym


wszystkie aplikacje pakietu Office XP z wyjtkiem aplikacji Access, korzystaj
ze wsplnego systemu projektowania okien dialogowych (w terminologii VBA
okno dialogowe nosi nazw UserForm). Oznacza to, e bez wzgldu na to,
w ktrej aplikacji pracujesz, okna dialogowe tworzy si za pomoc tych samych
narzdzi oraz formantw. Ponadto okno dialogowe zaprojektowane na przykad
w Wordzie mona wykorzysta w Excelu, czsto bez koniecznoci dokonywania

14

ABC Visual Basic dla aplikacji w Office XP PL

zmian. Dziki formantom dostarczanym z VBA tworzy si efektowne


i funkcjonalne okna dialogowe (rysunek 1.3). Poza tym mona korzysta
z formantw sprzedawanych przez innych producentw (patrz podrozdzia
na temat formantw ActiveX w dalszej czci tego rozdziau).
Rysunek 1.3.
Okno dialogowe
ze standardowymi
formantami

VBA w rnych aplikacjach


Mimo wysikw firmy Microsoft zmierzajcych do ujednolicenia jzyka VBA we wszystkich aplikacjach pakietu Office, nadal istniej rnice midzy odmianami VBA stosowanymi w poszczeglnych aplikacjach. Aby na przykad za pomoc kodu wywoa wbudowane okno dialogowe
Zapisz jako w programie Word, naley uy staej wdDialogFileSaveAs. Aby podobne okno dialogowe wywoa w programie Excel, naley uy staej xlDialogSaveAs. Zwr uwag, e staa
stosowana w Excelu nie zawiera czonu File. Warto rwnie zauway, e spord wszystkich
aplikacji pakietu Office adna nie pozwala kontrolowa wbudowanych polece za pomoc
kodu VBA tak bardzo jak Word.
 Mona definiowa wasne obiekty w moduach klas. Dziki zdefiniowaniu

obiektw mona korzysta z dobrodziejstw programowania obiektowego. Ten


sam obiekt mona wykorzystywa w rnych projektach, przez co skraca si
czas tworzenia programw.
 Technologia ADO (ActiveX Data Objects) sprawia, e dokumenty pakietu

Office XP mog pobiera dane z rnych rde. Dziki ADO mona


pobiera i przechowywa dane bez wzgldu na to, czy znajduj si one
na dysku twardym, serwerze grupy roboczej lub w relacyjnej bazie danych.
Technologia ADO jest atwiejsza w uyciu i szybsza ni technologie
odpowiedzialne za dostp do danych wykorzystywane w poprzednich wersjach
pakietu Office, w tym Data Access Objects (DAO) oraz Open Database
Connectivity (ODBC).
Wicej informacji na temat technologii ADO mona znale w ABC Access 2002/
XP PL (Helion, 2002).
 Warunkowa kompilacja kodu uatwia tworzenie programw. Dziki

warunkowej kompilacji kodu mona stworzy programy w rnych wersjach


jzykowych, na przykad w wersji polskiej lub angielskiej. Warunkow
kompilacj kodu mona rwnie stosowa do wskazania fragmentw kodu,
ktre maj by wykonane podczas testowania programu.

Rozdzia 1. Visual Basic dla Aplikacji

15

 Funkcje API zwikszaj moliwoci jzyka VBA. Jeeli biblioteki jzyka VBA

nie zawieraj funkcji, ktrej potrzebujesz, moesz skorzysta z funkcji API


(Application Programming Interface) przechowywanych w systemie Windows
w dynamicznych bibliotekach DLL (Dynamic Linked Library).

VBA pierwsze kroki


VBA jest wystarczajco bogatym rodowiskiem programowania, by zaspokoi potrzeby
profesjonalnych programistw. Nauk jzyka VBA najlepiej rozpocz od prby zautomatyzowania czsto powtarzanych czynnoci.

Makra to programy VBA


Nauk programowania w jzyku VBA uatwia Rejestrator makr dostpny w programach
Word, PowerPoint i Excel. Makra su do automatyzacji czsto powtarzanych czynnoci.
Rejestracj makra rozpoczyna si od wywietlania okna dialogowego Rejestrowanie
makra, w ktrym mona poda nazw dla nowego makra i wybra inne opcje zwizane
z jego rejestracj. Wygld i dokadna nazwa tego okna zaley od aplikacji. Rysunek 1.4
przedstawia okno dialogowe Rejestrowanie makra programu Word.
Rysunek 1.4.
Okno dialogowe
Rejestrowanie makra
programu Word

Aby zarejestrowa makro, ktre ustawia skal wywietlania dokumentu programu Word
na 200%, wykonaj nastpujce czynnoci:
1. Z menu Narzdzia wybierz pozycj Makro, a nastpnie pozycj Zarejestruj

nowe makro. Word otworzy okno dialogowe Rejestrowanie makra.


2. W polu Nazwa makra wpisz nazw dla nowego makra, na przykad Skala200.
3. Kliknij przycisk OK. Word wywietli pasek narzdzi Zatrzymaj rejestrowanie

z dwiema ikonami Koczenie rejestracji makr oraz Wstrzymywanie rejestratora.


4. Z menu Widok wybierz pozycj Powikszenie, w oknie dialogowym Powikszenie

wybierz opcj 200% i kliknij przycisk OK.

16

ABC Visual Basic dla aplikacji w Office XP PL


5. Kliknij ikon Koczenie rejestracji makr na pasku narzdzi Zatrzymaj

rejestrowanie. Po wyczeniu rejestratora makr ustaw skal wywietlania


dokumentu na warto 100% (w tym celu w polu Powikszenie widoku na pasku
narzdzi Standardowy wpisz warto 100 i nacinij klawisz Enter).
Aby uruchomi makro Skala200, ktre ustawia skal wywietlania dokumentu programu Word na 200%, wykonaj nastpujce czynnoci:
1. Z menu Narzdzia wybierz pozycj Makro, a nastpnie pozycj Makra.

Word otworzy okno dialogowe Makra (rysunek 1.5).


Rysunek 1.5.
Okno dialogowe
Makra

2. Zaznacz (kliknij) nazw makra (w tym przypadku Skala200) i kliknij przycisk

Uruchom. Skala wywietlania dokumentu zmieni si na 200%.


Zarejestrowane makra s przechowywane w postaci kodu VBA nie ma rnicy midzy kodem zarejestrowanego makra a kodem wpisanym przez programist. Aby obejrze
kod zarejestrowanego makra, z menu Narzdzia wybierz pozycj Makro, a nastpnie
pozycj Makra. W oknie dialogowym Makra zaznacz nazw makra, ktrego kod
chcesz obejrze, i kliknij przycisk Edytuj.
Zwr uwag, e makro to procedura VBA (cile mwic, makro to podprogram
procedura zadeklarowana ze sowem kluczowym Sub bez parametrw). Standardowo aplikacja pakietu Office umieszcza zarejestrowane makra w module kodu zwizanym z biecym dokumentem. Modu kodu moe zawiera wicej ni jedno makro
(procedur).
Procedury i moduy omawiamy w rozdziale 4.

VBA to nie tylko makra


Makra radz sobie znakomicie z automatycznym wykonywaniem czsto powtarzanych
polece w okrelonym porzdku. Makro nie jest jednak w stanie zareagowa we waciwy sposb na zmieniajce si warunki. Aby utworzy procedur dostosowujc swoje
zachowanie do biecych warunkw, programista musi napisa kod procedury w module kodu.

Rozdzia 1. Visual Basic dla Aplikacji

17

Warto pisa procedury w jzyku VBA m.in., po to, by mc:


 Tworzy okna dialogowe. VBA pozwala projektowa zarwno proste okna

komunikatw z przyciskami Tak, Nie i Anuluj, jak i skomplikowane okna


dialogowe z wieloma kartami. VBA jest narzdziem do programowania
wizualnego, poniewa okna dialogowe tworzy si, rysujc na formularzach
rne elementy.
Aby okna dialogowe zaczy pracowa, musisz napisa kod VBA.

 Pobiera dane z baz danych Access, dBase, FoxPro, a take z relacyjnych

baz danych dostpnych za pomoc interfejsu OLE DB lub ODBC.


Aby przeglda dane pochodzce z wymienionych rde, naley korzysta
z programu Microsoft Query. Aby natomiast manipulowa nimi, naley napisa
procedury w jzyku VBA.
 Doda do procedury kod uruchamiany, ilekro w procedurze wystpi bd.

Aby nie doszo do zawieszenia makra lub procedury napisanej przez programist
w przypadku wystpienia bdu, mona doda kod odpowiedzialny za obsug
takich sytuacji. Kod obsugujcy bdy jest szczeglnie wany, jeeli programy
VBA s uywane nie tylko przez ich autora, ale i przez innych uytkownikw.
Autor nie moe kontrolowa warunkw, w jakich inni uytkownicy uruchamiaj
jego programy. VBA zawiera kilka instrukcji sucych do tworzenia kodu
obsugujcego bdy.
 Utworzy system pomocy. Mona stworzy pomoc kontekstow i wywietla

komunikaty, kiedy uytkownik popeni bd. Mona nawet programowa


Asystenta pakietu Office, tworzc zestaw wskazwek pomagajcych
uytkownikowi wykona zoone zadanie.
 Ochroni program przed nieautoryzowanym modyfikowaniem kodu lub

kopiowaniem. Kod VBA mona zabezpieczy hasem, aby nieuprawnione


osoby nie miay do niego dostpu.

VBA narzdzie do programowania


obiektowego
Chocia Visual Basic dla Aplikacji nie spenia wszystkich warunkw, jakie s stawiane
jzykowi programowania obiektowego, obiekty odrywaj fundamentaln rol w jzyku VBA. Ten podrozdzia jest wprowadzeniem do programowania obiektowego.
Obiekty VBA s omwione szczegowo w rozdziale 4.

18

ABC Visual Basic dla aplikacji w Office XP PL

Obiekty jzyka VBA


Obiekty s elementami tworzcymi aplikacj macierzyst (aplikacj macierzyst jest
na przykad Word, Excel i PowerPoint) oraz dokument utworzony za pomoc tej aplikacji (na przykad dokument programu Word, skoroszyt programu Excel lub prezentacja programu PowerPoint). W programie Excel obiektem jest nie tylko skoroszyt, ale
i arkusz, komrka arkusza, zakres komrek oraz wykres.
Obiekty mog by rwnie bardziej abstrakcyjne. Obiekt WidokNiestandardowy na
przykad moe reprezentowa niestandardowy widok skoroszytu programu Excel. Widok niestandardowy nie jest czym, co mona zobaczy na ekranie, ale zbiorem ustawie definiujcych wygld skoroszytu oraz jego opcje drukowania. We wszystkich aplikacjach, do ktrych doczono VBA, obiekt Collection reprezentuje kolekcj obiektw
traktowanych jako jedna cao.

Modele obiektowe
Kady obiekt naley do hierarchii obiektw zdefiniowanej przez aplikacj macierzyst i przez VBA. Obiekt umieszczony na samym szczycie hierarchii posiada waciwoci, metody i zdarzenia. Jest on rwnie kontenerem innych obiektw (tych, ktre
znajduj si niej w hierarchii). Obiekty umieszczone poniej obiektu bazowego rwnie posiadaj waciwoci, metody i zdarzenia. Model obiektowy aplikacji, do ktrej
doczono VBA, definiuje hierarchi obiektw, ich waciwoci, metody i zdarzenia
oraz relacje midzy obiektami.
VBA posiada wasny model obiektowy. Zatem, pracujc na przykad w aplikacji Word,
moesz korzysta z modelu obiektowego Word oraz modelu obiektowego VBA. Cz
modelu obiektowego aplikacji Word przedstawia rysunek 1.6.
Obiektem bazowym modelu obiektowego aplikacji Word jest obiekt Application. Poniej
znajduj si m.in. obiekty Documents, Paragraphs, Characters, Bookmarks oraz Dialogs.

Technologia ActiveX a VBA


Termin ActiveX, wprowadzony przez Microsoft, suy do okrelania zbioru technologii stosowanych w produkcji oraz automatyzacji aplikacji. Jest to standard stosowany
przez twrcw komponentw ActiveX (formantw) oraz programistw wykorzystujcych te komponenty do tworzenia aplikacji.

Formanty ActiveX
Formanty ActiveX to elementy okien dialogowych i paskw narzdzi, za pomoc ktrych
uytkownik kieruje aplikacj. Przykadem formantu jest przycisk polecenia, ktry uytkownik moe klikn, grupa przyciskw opcji, z ktrej uytkownik moe wybra jedn
opcj, oraz pole tekstowe, gdzie uytkownik moe wpisa i edytowa tekst.

Rozdzia 1. Visual Basic dla Aplikacji

19

Rysunek 1.6.
Cz modelu
obiektowego
aplikacji Word

Warto zwrci uwag, e mona korzysta nie tylko z formantw dostarczanych z VBA,
ale rwnie z formantw sprzedawanych przez niezalenych producentw. Formant jest
komponentem, ktry mona doda do formularza i dostosowa do potrzeb konkretnego projektu. Formanty ActiveX mona zastosowa w aplikacjach pisanych za pomoc
jzyka Visual Basic, C++, Java i oczywicie VBA. Jeeli aden z formantw dostarczanych z VBA nie odpowiada potrzebom danego projektu, moesz naby odpowiedni formant od jednej z wielu firm specjalizujcych si w produkcji formantw ActiveX. Formant ActiveX mona rwnie utworzy za pomoc pakietu programistycznego Visual
Basic 6.0 (wersja Professional lub Enterprise). Rysunek 1.7 przedstawia okno dialogowe
z formantami ActiveX.
Niektre formanty s widoczne podczas dziaania aplikacji, inne nie. Mog one wykonywa wyspecjalizowanie zadania, na przykad dokonywa oblicze finansowych.
Formanty ActiveX mona rwnie wykorzysta do tworzenia stron internetowych
wywietlanych w przegldarkach internetowych. Wicej informacji na ten temat zawiera rozdzia 6.

20

ABC Visual Basic dla aplikacji w Office XP PL

Rysunek 1.7.
Okno dialogowe
z formantami ActiveX

Posiadacze przegldarek internetowych obsugujcych standard ActiveX mog oglda i uywa witryny internetowe zawierajce formanty ActiveX. W ten sposb technologia ActiveX staje si dostpna dla uytkownikw korzystajcych z rnych systemw operacyjnych.

Automatyzacja ActiveX
Piszc program w jzyku VBA, programista moe korzysta nie tylko z obiektw aplikacji macierzystej, ale take z kadej aplikacji lub komponentu stosujcych standard
Component Object Model (COM). COM okrela, w jaki sposb naley definiowa i udostpnia obiekty aplikacji, aby mogy z nich korzysta inne aplikacje. Termin automatyzacja oznacza moliwo aktywowania i kontrolowania obiektw aplikacji COM.
Automatyzacja oraz standard COM otwieraj olbrzymie moliwoci przed programistami tworzcymi aplikacje w jzyku VBA. Mona na przykad stworzy aplikacj przetwarzajc informacje pochodzce z dokumentw aplikacji Word, skoroszytw aplikacji
Excel, baz danych aplikacji Access i Outlook, prezentacji aplikacji PowerPoint, diagramw aplikacji Visio, rysunkw technicznych aplikacji AutoCAD itd. Informacje po
przetworzeniu mona wywietli w oknach dialogowych. Technologia DCOM (Distributed Component Object Model) pozwala rozpowszechnia komponenty ActiveX w sieciach internetowych lub intranetowych.

Serwery i kontrolery automatyzacji


Serwer automatyzacji to aplikacja, ktra udostpnia obiekty innym aplikacjom. Kontroler automatyzacji to aplikacja, ktra kontroluje obiekty innej aplikacji. Kada aplikacja pakietu Office XP moe by zarwno serwerem, jak i kontrolerem automatyzacji.

Wicej informacji o VBA


Aby dowiedzie si wicej o programowaniu w jzyku Visual Basic, moesz naby
jedn z ksiek powiconych tej tematyce wydanych przez Wydawnictwo Helion.

Rozdzia 1. Visual Basic dla Aplikacji

21

Informacje na temat VBA mona rwnie znale w Internecie. Oto adresy dwch stron
producenta technologii VBA:
 msdn.microsoft.com/vba,
 msdn.microsoft.com/vbasic.

Informacji warto te szuka na stronach internetowych firmy Microsoft powiconych


konkretnym aplikacjom pakietu Office oraz na stronach Microsoft Knowledge Base.
Oto kilka innych stron internetowych wartych uwagi:
 http://download.com.com/2001-2206-0.html?tag=dir
 www.geocities.com,
 www.cgvb.com,
 www.mvps.org/vbnet,
 www.vbip.com,
 http://searchvb.techtarget.com,
 www.codehound.com/vb.

Oto lista wybranych czasopism powiconych jzykowi VBA:


 Microsoft Developers Network (MSDN)

http://msdn.microsoft.com,
 Elements K Journals

www.elementkjournals.com,
 Microsoft Office & Visual Basic for Applications Developer

Informant Communications Group, Inc.


10519 E. Stockton Blvd.
Suite 100
Elk Grove, CA 95624-9703
www.informant.com,
 Visual Basic Programmers Journal,

Fawcette Technical Publications, Inc


913 Emerson Ave.
Palo Alto
CA 94301
www.windx.com.

You might also like