19
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

VBA dla Excela 2002/2003. Leksykon kieszonkowy

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: VBA dla Excela 2002/2003. Leksykon kieszonkowy

Wydawnictwo Helion

ul. Chopina 6

44-100 Gliwice

tel. (32)230-98-63

e-mail: [email protected]

PRZYK£ADOWY ROZDZIA£PRZYK£ADOWY ROZDZIA£

IDZ DOIDZ DO

ZAMÓW DRUKOWANY KATALOGZAMÓW DRUKOWANY KATALOG

KATALOG KSI¥¯EKKATALOG KSI¥¯EK

TWÓJ KOSZYKTWÓJ KOSZYK

CENNIK I INFORMACJECENNIK I INFORMACJE

ZAMÓW INFORMACJEO NOWO�CIACH

ZAMÓW INFORMACJEO NOWO�CIACH

ZAMÓW CENNIKZAMÓW CENNIK

CZYTELNIACZYTELNIA

FRAGMENTY KSI¥¯EK ONLINEFRAGMENTY KSI¥¯EK ONLINE

SPIS TRE�CISPIS TRE�CI

DODAJ DO KOSZYKADODAJ DO KOSZYKA

KATALOG ONLINEKATALOG ONLINE

VBA dla Excela 2002/2003.Leksykon kieszonkowyAutor: 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¿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 ksi¹¿ka, któr¹

w³a�nie 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

Page 2: VBA dla Excela 2002/2003. Leksykon kieszonkowy

Spis treści 3

Spis treści

Wstęp .........................................................................................5

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

Rozdział 5. Formularze ......................................................124Procedury zdarzeniowe formantów ...................................................124

Skorowidz .............................................................................137

Page 3: VBA dla Excela 2002/2003. Leksykon kieszonkowy

Rozdział 3. Elementy Visual Basica 77

Rozdział 3. Elementy Visual Basica

Funkcje i operatory matematyczne

Funkcje trygonometryczne

Do wyboru mamy funkcje:

• ��� — Arcus tangens,

• ��� — Cosinus,

• ��� — Sinus,

• � — Tangens.

Składnia wszystkich jest taka sama:

���������������

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.

Page 4: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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:

����� ����

Page 5: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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:

����������������� ������!�����������������"�������#�!��$������� ���%��$&�'������(��� �����)�*� ���+�����������������"�������#�!��$������� ���%��$&�'������(�$� �����)�*�,������

W przykładzie otrzymamy dwie kolumny z wygenerowanymilosowo liczbami z zakresu 0 do 1. Losowo, lecz w tej samej ko-lejności.

Page 6: VBA dla Excela 2002/2003. Leksykon kieszonkowy

80 VBA dla Excela 2002/2003. Leksykon kieszonkowy

Abs

Oblicza wartość bezwzględną (moduł) podanej liczby, czyli od-cina znak minus, jeżeli występuje.

Składnia:

����� ����

• � ���� — dowolna liczba rzeczywista.

Sgn

Zwraca wartość w zależności od znaku podanego argumentu.

Składnia:

������������

• �������� — dowolna liczba rzeczywista.

Funkcja zwraca następujące wartości:

"� — gdy argument jest mniejszy od zero,

�& — gdy argument jest równy zero,

�� — gdy argument jest większy od zero.

Fix, Int

Zwracają część całkowitą argumentu.

Składnia:

��*���������-�����������

• �������� — dowolna liczba rzeczywista.

W zakresie liczb dodatnich funkcje odcinają część ułamkową ar-gumentu. Różnice w działaniu są widoczne podczas działań na

Page 7: VBA dla Excela 2002/2003. Leksykon kieszonkowy

Rozdział 3. Elementy Visual Basica 81

liczbach ujemnych. ��� zaokrągla argument w dół, podczas gdy��� — w górę.

Przykład:

����.�$ Da wynik 3

����.�$ Da wynik 3

����".�$ Da wynik –4

����".�$ Da wynik –3

Operatory matematyczne

Znak Opis Składnia — przykład użycia

/ Znak potęgowania wynik = liczba^wykładnik

0�1 Znaki odejmowania i dodawania wynik = składnik + składnik

��2 Znaki mnożenia i dzielenia wynik = dzielna/dzielnik

3 Zwraca część całkowitą z wynikudzielenia. Dodatkowo dzielna i dzielnikprzed wykonaniem obliczeń zostanąpozbawione części ułamkowej

wynik = dzielna\dzielnik

4�� Zwraca resztę z dzielenia reszta = dzielna Mod dzielnik

5 Służy do łączenia dwóch ciągów znaków wynik = ”łańcuch1”&”łańcuch2”

Round

Zwraca liczbę zaokrągloną do zadanej dokładności.

Składnia:

�������� ����(����� ����

• � ���� — wymagany — dowolna liczba rzeczywista pod-dana zaokrągleniu;

• ���� ���� — 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ą.

Page 8: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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ę.

Page 9: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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).

TimeSerial

Zwraca w wyniku czas.

Składnia:

�������$�!��� ��(�� ����(�"�����

• !��� ��, � ����, "����� — wymagane — dowolne dodatnieliczby całkowite.

Przykład:

�������$�$(�.�(�; Da w wyniku godzinę 2:34:07

Page 10: VBA dla Excela 2002/2003. Leksykon kieszonkowy

84 VBA dla Excela 2002/2003. Leksykon kieszonkowy

TimeValue

Konwertuje ciąg znaków o ustalonej składni na zmienną zawie-rającą czas.

Przykład:

%�#�<�����=�:.6:�;�4= da w wyniku zmienną typu >��� wskazu-jącą czas 16:35:17.

DateSerial

Zwraca w wyniku datę.

Składnia:

�������$�#�(�� �� $�(��� ��

• #�, � �� $�, �� �� — wymagane — dowolne liczby całkowite.

Przykład:

�������$�&(��(�; Da w wyniku datę 07.04.2000 roku

�������$�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.

Page 11: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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

Page 12: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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;

• ���� — wymagany — data bazowa.

Przykład:

����� �>����������$(��(�;� ����!?#?����A�&;�&��$&&$����B������ ��������=�=(�.(���������B����$� ��������=�=(�.(���������B����.� ��������=@=(�.(���������B������ ��������=��=(�.(���������B����6� ��������=????=(�.(�����

W wyniku działania powyższego kodu zmienne przyjmą nastę-pujące wartości:

����B����� 2002-04-07 00:03

����B����$ 2002-04-10

����B����. 2003-01-07

����B����� 2002-04-28

����B����6 2005-04-07

DateDiff

Zwraca różnicę między podanymi datami.

Składnia:

�����&&������%�(������(�����&(��� �� ����� �(�� ��� ��#��

• �����%� — wymagany — patrz funkcja >���C��;

• �����, ����& — wymagane — daty, między którymi zostanieobliczona różnica;

Page 13: VBA dla Excela 2002/2003. Leksykon kieszonkowy

Rozdział 3. Elementy Visual Basica 87

• ��� �� ����� � — opcjonalny — stała wskazująca początektygodnia. Możliwe są wartości od & (niedziela) do ;�(sobota)lub stałe z kolekcji D�>�?EF����;

• � ��� ��#�� — opcjonalny — stała wskazująca, w jaki sposóbma zostać wskazany pierwszy tydzień roku.

Możliwe wartości:

D�G���?���# lub & Używa ustawień systemowych

D������H��� lub � Pierwszym jest tydzień zawierający dzień 1 stycznia

D����������>�?� lub $ Pierwszym jest tydzień, w którym przynajmniej cztery dninależą do nowego roku

D�������������� lub . Pierwszy pełny tydzień roku

DatePart

Oblicza, w jakiej części interwału czasowego mieści się podanadata.

Składnia:

���'��������%�(�����(���� �� ����� �(�� ��� ��#��

Parametry zostały opisane przy funkcjach >���>�FF i >���C��.

Przykład:

����� �>����������$(��(�;� ����!?#?����A�&;�&��$&&$����B������ ����'���=�=(���������B����$� ����'���=?=(���������B����.� ����'���=@=(���������B������ ����'���=��=(���������B����6� ����'���=????=(�����

W wyniku działania powyższego kodu, zmienne ����B���� przyjmąnastępujące wartości:

Page 14: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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.

Page 15: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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

Page 16: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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

Page 17: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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.

Składnia:

�� ��*���*���� ��(� ���(���������(�+(��(�)� )�����(�*������

Page 18: VBA dla Excela 2002/2003. Leksykon kieszonkowy

92 VBA dla Excela 2002/2003. Leksykon kieszonkowy

• *���� �� — 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

Page 19: VBA dla Excela 2002/2003. Leksykon kieszonkowy

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.