Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
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
Spis treci
Wprowadzenie ...................................................................................9
Kilka uwag o VBA..............................................................................................................9
Krtka historia VBA .....................................................................................................9
VBA jako standard......................................................................................................10
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
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
Skorowidz.........................................................................................................205
Rozdzia 1.
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
Rysunek 1.1.
Edytor jzyka Visual
Basic dla Aplikacji
zawiera okno
Project, okno
Properties, modu
kodu, pasek menu
oraz pasek narzdzi
Standard
na wielk liter.
8. Aby uruchomi procedur WywietlWersjAplikacji, upewnij si, e kursor jest
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.
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,
14
15
Funkcje API zwikszaj moliwoci jzyka VBA. Jeeli biblioteki jzyka VBA
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
16
17
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
18
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.
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.
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
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.
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.
http://msdn.microsoft.com,
Elements K Journals
www.elementkjournals.com,
Microsoft Office & Visual Basic for Applications Developer