Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: [email protected]PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ IDZ DO IDZ DO ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG KATALOG KSI¥¯EK KATALOG KSI¥¯EK TWÓJ KOSZYK TWÓJ KOSZYK CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK ZAMÓW CENNI K CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE SPIS TRECI SPIS TRECI DODAJ DO KOSZYKA DODAJ DO KOSZYKA KATALOG ONLINE KATALOG ONLINE VBA dla Excela 2002/2003. Leksykon kieszonkowy Autor: Miros³aw Lewandowski ISBN: 83-7361-377-3 Format: B6, stron: 144 Ta niewielka rozmiarami ksi¹¿ka jest niezwykle cenn¹ pomoc¹ dla osób, które chc¹ bez wg³êbiania siê w niuanse Visual Basic for Applications tworzyæ ad hoc skrypty w tym jêzyku, rozszerzaj¹c mo¿liwoci programu Microsoft Excel. W zwiêz³ej i skondensowanej formie znajdziesz tu wybrane, najwa¿niejsze informacje o programowaniu w VBA i dziesi¹tki drobnych wskazówek, które pomog¹ Ci osi¹gn¹æ cele, które sobie postawi³e. Nie zawsze trzeba siêgaæ po podrêcznik wyjaniaj¹cy wszystko od podstaw. Je¿eli nie czujesz takiej potrzeby, wystarczy Ci ksi¹¿ka, któr¹ w³anie trzymasz w rêku. Omówiono miêdzy innymi • Sta³e, zmienne i tablice w VBA • Obiekty i metody; w tym wybrane obiekty MS Office • Funkcje Visual Basica • Interakcjê programów z u¿ytkownikiem • Instrukcje Visual Basica • Obs³ugê b³êdów w VBA • Procedury zdarzeniowe dla obiektów Excela • Formularze i zwi¹zane z nimi procedury
Ta niewielka rozmiarami książka jest niezwykle cenną pomocą dla osób, które chcą bez wgłębiania się w niuanse Visual Basic for Applications tworzyć ad hoc skrypty w tym języku, rozszerzając możliwości programu Microsoft Excel. W zwięzłej i skondensowanej formie znajdziesz tu wybrane, najważniejsze informacje o programowaniu w VBA i dziesiątki drobnych wskazówek, które pomogą Ci osiągnąć cele, które sobie postawiłeś. Nie zawsze trzeba sięgać po podręcznik wyjaśniający wszystko od podstaw. Jeżeli nie czujesz takiej potrzeby, wystarczy Ci ta książka.
Omówiono między innymi:
* Stałe, zmienne i tablice w VBA * Obiekty i metody; w tym wybrane obiekty MS Office * Funkcje Visual Basica * Interakcję programów z użytkownikiem * Instrukcje Visual Basica * Obsługę błędów w VBA * Procedury zdarzeniowe dla obiektów Excela * Formularze i związane z nimi procedury
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Rozdział 1. Stałe, zmienne i tablice ....................................6Deklarowanie zmiennych i stałych .........................................................6Deklarowanie procedur i tablic ...............................................................8Typy zmiennych.......................................................................................10Opcje modułu ...........................................................................................13Konwersja typów danych .......................................................................15
Rozdział 2. Obiekty i metody.............................................21Metody.......................................................................................................22Przeglądarka obiektów............................................................................53Obiekty ......................................................................................................56
Rozdział 3. Elementy Visual Basica ...................................77Funkcje i operatory matematyczne .......................................................77Data i czas .................................................................................................82Interakcja z użytkownikiem ...................................................................90Operacje na łańcuchach...........................................................................93Pętle i skoki .............................................................................................100Instrukcje warunkowe i wyboru..........................................................103Przerwanie programu ...........................................................................107Funkcje informacyjne ............................................................................108Błędy ........................................................................................................112
Rozdział 4. Procedury zdarzeniowe ................................115Procedury zdarzeniowe dla obiektu Worksheet ...............................115Procedury zdarzeniowe dla obiektu ThisWorkbook........................117Zdarzenia dla innych obiektów ...........................................................123
Aby otrzymać wartość funkcji cotangens, należy zastosować fun-kcję 1/Tan.
Wartość Pi możesz obliczyć na dwa sposoby:
• w VBA jako ArcusTangens:
�� ����������
• lub korzystając z funkcji arkuszowej �:
��� ��������������������
Exp i Log
Log zwraca wartość logarytmu naturalnego danej liczby. Pod-stawą logarytmów naturalnych jest stała e=2,71828182845904.
�� jest odwrotnością funkcji ��� — zwraca wartość liczby e pod-niesioną do wskazanej potęgi.
78 VBA dla Excela 2002/2003. Leksykon kieszonkowy
Składnia:
�� ������
• ����� — wykładnik potęgi,
����� ����
• � ���� — liczba rzeczywista dodatnia, której logarytm należyobliczyć.
Sqr
Zwraca pierwiastek kwadratowy podanego argumentu.
Składnia:
������������
• �������� — liczba rzeczywista większa od 0.
Randomize, i Rnd
�������� służy do zainicjowania generatora liczb losowych.
Składnia:
�������������
• ���� — argument opcjonalny — wartość początkowa do ob-liczenia zbioru liczb pseudolosowych. Jeżeli go pominiesz,zostanie on ustalony na podstawie wskazań zegara syste-mowego, co dodatkowo korzystnie wpłynie na losowaneliczby.
��� generuje liczbę losową z zakresu od 0 do <1.
Składnia:
����� ����
Rozdział 3. Elementy Visual Basica 79
• � ���� — argument opcjonalny;
• jeżeli � ���� = 0, funkcja zwróci ostatnio wygenerowanąliczbę;
• jeżeli � ���� <0, funkcja za każdym razem zwróci tę samą,raz wygenerowaną wartość;
• jeżeli pominiesz argument lub � ���� >0, funkcja zwrócikolejną liczbę ze zbioru liczb losowych.
Wartość argumentów ���� i � ���� nie ma znaczenia, jeżeli zależyCi na losowym generowaniu liczb. Jednakże za ich pomocą mo-żesz wpłynąć na powtórzenie generowania tego samego zestawu.Jeśli więc chcesz, aby liczby losowe zaczęły powtarzać się w tejsamej kolejności przed zainicjowaniem generatora, wywołaj funk-cję ��� z parametrem ujemnym, a następnie zainicjuj generator liczblosowych. Wyjaśni to poniższy przykład:
• ���� ���� — opcjonalny — wskazuje, z jaką dokładnością(do ilu miejsc po przecinku) należy zaokrąglić liczbę. Jeżelipominiesz ten parametr, funkcja zwróci liczbę całkowitą.
82 VBA dla Excela 2002/2003. Leksykon kieszonkowy
Data i czas
Hour, Minute, Second
Funkcje zwracają godzinę, minutę lub sekundę z podanego ar-gumentu. Argumentem może być liczba w postaci dziesiętnej lubw formacie czasu.
Przykład:
�����&�67.888887�����9$:�6:�$�49
W obu powyższych przypadkach funkcja zwróci liczbę 14, bowiemobydwa argumenty przedstawiają tę samą godzinę. Analogicznie:
�������&�67.888887
da wynik 15. Natomiast:
�������&�67.888887
da wynik 12
Day, Month, Year
�� zwraca liczbę o wartości od 1 do 31 reprezentującą kolejnydzień miesiąca.
���� zwraca liczbę w zakresie od 1 do 12 reprezentującą miesiącroku z podanej daty.
!�� zwraca rok z podanej daty.
Składnia:
����������� �����!�������
gdzie ���� to wyrażenie reprezentujące datę.
Rozdział 3. Elementy Visual Basica 83
Weekday
Funkcja zwraca wartość liczbową (od 0 do 7) reprezentującą dzieńtygodnia wskazanej daty.
Składnia:
"��#�������(���� �� ����� �
• ���� — wymagany;
• ��� �� ����� � — opcjonalny — wskazuje pierwszy dzieńtygodnia.
Przykład:
"��#�������($ zwróci wartość 1, jeżeli rozpatrywany dzień będzieponiedziałkiem.
"��#�������(� zwróci wartość 1 dla środy, 2 dla czwartku i takdalej.
Domyślną wartością parametru pierwszy jest 1 (czyli niedziela).
�������$�77(��(�; Da w wyniku datę 07.04.1999 roku
�������$��&&(��(�; Da w wyniku datę 07.04.100 roku
Warto stosować pełny (czterocyfrowy) zapis roku, aby uniknąćpomyłek pokazanych powyżej.
DateValue
Konwertuje ciąg znaków o ustalonej składni na zmienną typu >���zawierającą datę.
Przykłady:
���%$���=���?�.�.&&$=���%$���=.����?�.&&$=
W powyższych linijkach zostanie obliczona data 3.02.3002 roku.
Rozdział 3. Elementy Visual Basica 85
���%$���=.�$�.&&$=���%$���=.($(.&&$=
Po wykonaniu powyższych poleceń program zwróci wartość2.03.3002 roku.
Poniższy zapis spowoduje błąd:
���%$���.(�$(�.&&$
VBA obsługuje daty z zakresu od 1.01.100 do 31.12.9999 roku i wy-rażenia zawierające takie wartości mogą zostać podstawione jakoargument funkcji >���������.
DateAdd
Dodaje do podanej daty określony interwał czasowy.
Składnia:
������������%�(������(�����
• �����%� — wymagany — podaje, jaki przedział czasowy bę-dzie dodany do daty.
Możliwe wartości:
???? Rok
@ Kwartał
# Miesiąc
? Dzień roku
� Dzień
� Dzień tygodnia
�� Tydzień
� Godzina
� Minuta
� Sekunda
86 VBA dla Excela 2002/2003. Leksykon kieszonkowy
Na potrzeby funkcji ������ parametry ?, �, i � oznaczają zawszedodanie dnia do wskazanej daty. Jednak przy innych funkcjachdaty i czasu parametry te mają już różne znaczenia.
• ����� — wymagany — wskazuje, ile interwałów czasowychma być dodanych;
W wyniku działania powyższego kodu, zmienne ����B���� przyjmąnastępujące wartości:
88 VBA dla Excela 2002/2003. Leksykon kieszonkowy
����B����� 1 — wskazana data to niedziela
����B����$ 97 — wskazana data to 97. dzień roku
����B����. 2 — kwiecień jest w drugim kwartale
����B����� 15 — wskazaną datę obejmuje 15. tydzień roku
����B����6 2002 — wskazaną datę obejmuje rok 2002
Date, Now, Time
• ��� zwraca dzisiejszą datę;
• ��� zwraca aktualny czas;
• (�) zwraca wyrażenie w postaci dzisiejszej daty i aktualnegoczasu.
Wartości są obliczane na podstawie z zegara systemowego.
Składnia:
!#������ ����!#������ ����!#������ �(�)
Funkcje bezparametrowe.
Timer
Wskazuje, ile sekund (wraz z ułamkami) upłynęło od północy.Funkcja bezparametrowa.
Składnia:
!#������ �����
MonthName
Podaje (po polsku!) nazwę miesiąca.
Rozdział 3. Elementy Visual Basica 89
Składnia:
���� (���'����(�"�(����
• '���� — wymagany — podaje numer miesiąca;
• "�(���� — opcjonalny — jeżeli wprowadzisz wartość %���,to nazwa miesiąca będzie podana w formie skróconej (naprzykład mar zamiast marzec). Domyślna wartość to �����.
WeekdayName
Podaje (po polsku) nazwę dnia tygodnia.
Składnia:
"��#��(����� ��(�"�(����(���� �� ����� �
• �� �� — wymagany — numer dnia;
• "�(���� — opcjonalny. Patrz funkcja 4����)�#�;
• ��� �� ����� � — opcjonalny — wskazuje pierwszy dzień ty-godnia. Patrz funkcje ����>�? i >���>�FF.
Calendar
Właściwość, która zwraca lub ustawia rodzaj używanego kalen-darza w Twoim projekcie.
Składnia:
�$����� �����
Możliwe są dwie wartości parametru:
D�'��I��+ lub & Kalendarz gregoriański
D�'��J���� lub � Hidżra — kalendarz księżycowy używany w krajach islamskich
90 VBA dla Excela 2002/2003. Leksykon kieszonkowy
Interakcja z użytkownikiem
MsgBox
Wyświetla okno komunikatu. Może także służyć do pobieraniadanych od użytkownika.
Składnia:
���*��� ���(�)���� � (� ���(�)� )�����(�*������
• ��� — wymagany — komunikat, który zostanie wyświe-tlony — może nim być ciąg do 1024 znaków lub zmienna;
• )���� � — opcjonalny — niesie informację o tym, jakieprzyciski będą wyświetlone w oknie oraz jaki będzie typkomunikatu. Z typem komunikatu wiąże się wyświetlanaw oknie ikona i efekty dźwiękowe (jeżeli użytkownik z nichkorzysta).
Wartości przycisków okna:
D�EKE��? lub & Wartość domyślna — tylko przycisk OK
D�EK'����� lub � Przyciski OK i Anuluj
D�C��������?-+���� lub $ Przyciski Przerwij, Ponów próbę, Ignoruj
D�L��)�'����� lub . Tak, Nie, Anuluj
D�L��)� lub � Tak, Nie
D�����?'����� lub 6 Ponów próbę, Anuluj
D�4�+M�*J���M����� lub �N.8� Dodatkowo przycisk Pomoc
Wartości typu komunikatu:
D�'������� lub �N Zatrzymanie krytyczne
D�O������� lub .$ Pytanie
D�,*���#����� lub �8 Ostrzeżenie
D�-�F��#����� lub N� Informacja
Rozdział 3. Elementy Visual Basica 91
D�4�+M�*��+�� lub 6$�$88 Tekst jest wyrównany do prawej
D�4�+M�*���������+ lub �&�86;N Arabski układ okna (od prawej do lewej)
Odpowiednią wartość parametru �!?����� oblicza się przez do-danie do siebie wartości stałych (można podać składniki rozdzie-lone znakiem + lub ich sumę) albo podanie ich nazw rozdzielo-nych znakiem +.
• ��� — opcjonalny — komunikat, który będzie widocznyna pasku tytułu (jeżeli go pominiesz, zostanie tam wyświe-tlona nazwa „Microsoft Excel”);
• )� )�����, *������ — plik pomocy i miejsce w nim, do któ-rego prowadzić będzie łącze po kliknięciu przycisku Pomoc.
Funkcja ���*�� może zwrócić wartości w zależności od akcji pod-jętej przez użytkownika:
D�EK lub � Kliknięto przycisk OK
D�'����� lub $ Kliknięto przycisk Anuluj
D�C���� lub . Kliknięto przycisk Przerwij
D�����? lub � Kliknięto przycisk Ponów Próbę
D�-+���� lub 6 Kliknięto przycisk Ignoruj
D�L�� lub N Kliknięto przycisk Tak
D�)� lub ; Kliknięto przycisk Nie
InputBox
Wynikiem wykonania tej funkcji jest wartość typu �����+ wpi-sana przez użytkownika w oknie dialogowym.
• *���� �� — wymagany — parę słów zachęty dla użytkow-nika — będą one wyświetlone w oknie komunikatu;
• ��� — opcja — komunikat który będzie widoczny na paskutytułu — jeżeli go pominiesz, zostanie tam wyświetlona na-zwa „Microsoft Excel”;
• �������� — opcja — zawiera wartość domyślną wprowa-dzanej zmiennej — będzie wyświetlana w miejscu wprowa-dzania danych (jeżeli pominiesz ten parametr, Excel nie wy-świetli żadnej wartości w oknie);
• +, �,— opcja — współrzędne (w pikselach) lewego górnegonarożnika okna dialogowego względem lewego górnego na-rożnika ekranu;
• )� )�����, *������ — plik pomocy i miejsce w nim, do któ-rego prowadzić będzie łącze po kliknięciu przycisku Pomoc.
Przykład:
Efektem wykonania poniższego kodu będzie okno dialogowe po-kazane na rysunku 3.1. Jeżeli użytkownik nie wprowadzi żadnejwartości i kliknie OK, zmiennej � zostanie przypisana wartość 2.Jeżeli wybierze przycisk Cancel, funkcja zwróci wartość ciągu ze-rowej długości.
�� �-����M�*�=�������P�����=(�=4�������������=(�$
Rysunek 3.1. Okno dialogowe wyświetlone za pomocą funkcji InputBox
Rozdział 3. Elementy Visual Basica 93
Funkcje logiczne
VBA oferuje pełną gamę ogólnie znanych operatorów logicznych:
(��, ���, +�, ,��, ��-, �� �
Wszystkich oprócz operatora (�� możemy używać w taki samsposób:
�?���� ������QR����������������QR$
gdzie �����QR� i �����QR$ to wyrażenia, na których dokonuje sięoperacji.
Operator (�� ma jeszcze łatwiejszą składnię:
�?���� �(�����+�#���
czego wynikiem będzie oczywiście odwrotność podanego ar-gumentu.