Deklarowanie Zmiennych i Stałych

 

Przykłady dla wszystkich lekcji szkolenia Excel 2013: ExcelSzkolenie.pl Cwiczenia Excel 2013.zip

 

Ta lekcja może być obejrzana lub przeczytana poniżej.

Film wygląda najlepiej jeśli będzie odtwarzany w rozdzielczości 720p HD, rozdzielczość można zmienić dopiero po uruchomieniu filmu klikając na ikonie trybika  która pojawi się w prawym dolnym rogu poniższego ekranu. Po kilku sekundach od zmiany obraz wyostrzy się.

 

 

 

 

 

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 deklarowania 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 adeptów sztuki programowania 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: True, 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
i od 1,401298E-45 do 3,402823E38
wartość domyślna 0

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 = 777                                                    ‘deklaracja stałej bez podawania typu danych

Public Const stala3 as String = “Jan Kowalski”       ‘deklaracja stałej publicznej

 

[kod makra]

 

End Sub