Deklarowanie
Zmiennych i Stałych
Przykłady opisane w tej lekcji dostępne są w arkuszu Excela VBA.xls, tylko ich
samodzielne przerobienie daje gwarancję zapamiętania tej lekcji.
Przykłady dla wszystkich lekcji szkolenia Excel 2003: ExcelSzkolenie.pl Cwiczenia Excel 2003.zip
Po co deklarować zmienne?
1.
Zadeklarowane zmienne zajmują mniej miejsca w pamięci komputera i skomplikowane
makra będą działać szybciej, jeśli zadeklarujemy zmienne.
2.
Zadeklarowanie wszystkich zmiennych na początku makra pozwoli nam utrzymać
porządek i lepiej je kontrolować, szczególnie jeśli
ich nazwy są opisowe i dodamy do zmiennych komentarze, łatwiej też będzie
zrozumieć makro innej osobie.
3. Deklarowanie
zmiennych w połączeniu z poleceniem Option
Explicit, które wymusza zadeklarowanie wszystkich
używanych zmiennych, chroni nas przed literówkami w nazwach zmiennych, bez tego
polecenia, zmienna z literówką zostanie potraktowana jako nowa zmienna.
4.
Deklarowanie i opisywanie zmiennych ułatwi innym pracę z naszymi makrami,
jeżeli zamierzamy się nimi dzielić
5. Zawansowani
programiści źle patrzą na makra (nawet te krótkie i proste) nie posiadające
zadeklarowanych zmiennych :-)
Dlaczego w przykładach z poprzednich
lekcji nie deklarowaliśmy zmiennych?
Makra,
którymi się zajmowaliśmy były bardzo proste i pomimo braku zadeklarowania zmiennych
działały w okamgnieniu, zakładałem też, że będą służyć tylko twórcy danego
makra.
Nie
chciałem zniechęcać początkujących formalnościami, napisanie szybko krótkich i
użytecznych makr miało na celu pokazanie, że warto zainwestować w uczenie się
VBA.
Poniżej
przedstawiam typy danych w VBA, pominąłem kilka nie używanych.
Typ danych |
Liczba używanych bajtów |
Zakres wartości |
|
Boolean |
2 |
wartość logiczna prawda lub fałsz |
|
wartości: Ture, False |
|||
|
|
wartość domyślna False |
|
Integer |
2 |
liczba całkowita od -32 768 do 32 767 |
|
wartość domyślna 0 |
|||
Long |
4 |
liczba całkowita |
|
od -2 147 483 648 do 2 147 483 647 |
|||
wartość domyślna 0 |
|||
Single |
4 |
liczba rzeczywista |
|
od -3,402823E38
do -1,401298E-45 |
|||
Double |
8 |
liczba rzeczywista dwukrotnie większa od
Single |
|
od
-1,79769313486232e+308 do -4,9406564581247e-324 |
|||
i od
4,9406564581247e-324 do 1,79769313486232e+308 |
|||
wartość domyślna 0 |
|||
String |
1 + 1 na każdy znak |
tekst maksymalnie do 32 767 znaków |
|
wartość domyślna: "" - pusty |
|||
Date |
8 |
data i czas w przedziale od 1 stycznia
100 r. do 31 grudnia 9999 roku wartość domyślna 0 |
|
Currency |
8 |
typ walutowy, liczby rzeczywiste
od -922 337 203 658 477,5808 do 922 337 203 685
477,5807 |
|
wartość domyślna 0 |
|||
Variant |
1 do 8 |
dowolny typ identyfikowany przez Visual
Basic w zależności od pierwszego użycia tej zmiennej |
|
wartość domyślna: EMPTY (puste) domyślny typ dla nie zadeklarowanych
zmiennych |
|||
Zdefiniowany
przez użytkownika |
zależy od definicji |
zależny od definicji |
Zazwyczaj
deklaruje się zmienne na początku makra, przed jakąkolwiek procedurą, dzięki
czemu zmienna jest dostępna we wszystkich procedurach modułu.
Najczęściej
używaną instrukcją jest Dim ... As ...
Sub makro1()
Dim zmienna1 As
Integer
[kod makra]
End Sub
Jeżeli
zmienna ma być używana także w innych modułach danego skoroszytu, należy użyć
polecenia Public ... As ...
Zmienną
można zadeklarować jako Public
tylko w standardowym module VBA.
Sub makro2()
Public zmienna2
As Integer
[kod makra]
End Sub
Polecenie
‘Option Explicit’ wymusi
deklarowanie wszystkich zmiennych, polecenie to jest chętnie używane przez
zaawansowanych programistów. Jeżeli w kodzie makra posłużymy się zmienną, która
nie została zadeklarowana wyświetlony zostanie błąd.
Deklarowanie stałych
Stałe deklarujemy korzystając z
instrukcji Const, nie musimy podawać typu stałej,
możemy tylko ustalić, że jest to stała.
W połączeniu z instrukcją Public możemy zadeklarować stałą dostępną także w innych
modułach.
Sub makro3()
Const stala1 as Integer = 5 ‘deklaracja
stałej typu integer
Const stala2 = 997 ‘deklaracja
stałej bez podawania typu danych
Public Const stala3 as String = “Jan Kowalski” ‘deklaracja stałej publicznej
[kod makra]
End Sub
Szkolenie Excel 2003 Szkolenie Excel 2007