• Inicjowanie zmiennej
W chwili rozpoczęcia procedury
wszystkie zmienne są inicjowane. Zmienna numeryczna jest inicjowana wartością Zero,
ciąg znaków zmiennej długości przyjmuje wartość ciągu długości zerowej (""
), natomiast ciąg znaków stałej długości jest wypełniany
znakami reprezentowanymi przez kod ASCII
0 lub Chr(0)
. Zmienne typu Variant
są inicjowane wartością Empty
. Każdy element zmiennej typu zdefiniowanego przez użytkownika
jest inicjowany tak, jakby był osobną zmienną.
Jeżeli deklarowana jest zmienna obiektowa
, w pamięci rezerwowany jest obszar, natomiast wartość zmiennej jest ustawiana
na Nothing do czasu przypisania do niej odwołania do obiektu za pomocą instrukcji Set.
Jeśli wartość zmiennej nie zmienia się podczas wykonywania programu, zmienna zachowuje swoją wartość inicjalną do czasu opuszczenia swego zasięgu.
- • procedura
- Opatrzona nazwą sekwencja instrukcji wykonywanych jako jeden blok. Przykładami procedur są Function, Property i Sub. Nazwa procedury jest zawsze definiowana na poziomie modułu. W procedurze musi zawierać się cały wykonywalny kod programu. Procedury nie mogą być zagnieżdżone w innych procedurach.
- • typ danych Variant
- Specjalny typ danych, które mogą oprócz danych liczbowych, ciągów znaków lub dat zawierać także wartości specjalne Empty i Null. Typ Variant rezerwuje 16 bajtów na dane numeryczne, co pozwala na przechowywanie liczb o zakresie takim jak dla typu Decimal, lub 22 bajty na ciąg znaków (łącznie z informacją o długości), co pozwala na przechowywanie dowolnego tekstu. Sposób traktowania danych typu Variant określa funkcja VarType. Wszystkie zmienne, dla których nie został jawnie zadeklarowany inny typ danych, należą do typu Variant.
- • Empty
- Wskazuje, że do zmiennej typu Variant nie przypisano żadnej początkowej wartości. Zmienna Empty dla wartości numerycznych jest równa 0, a dla ciągów znaków jest ciągiem znaków o długości zerowej ("").
- • typ zdefiniowany przez użytkownika
- Dowolny typ danych zdefiniowany za pomocą instrukcji Type. Typy danych zdefiniowane przez użytkownika mogą zawierać jeden lub więcej elementów dowolnego typu. Tablice typów definiowanych przez użytkownika oraz innych typów tworzone są za pomocą instrukcji Dim. Typy zdefiniowane przez użytkownika mogą zawierać tablice dowolnego typu.
- • zmienna obiektowa
- Zmienna zawierająca odwołanie do obiektu.
Poziom procedury
Zmienna na poziomie procedury
zadeklarowana za pomocą instrukcji Dim zachowuje swoją wartość
do czasu zakończenia działania procedury. Jeśli procedura wywołuje inne procedury, zmienna zachowuje swoją wartość również podczas
wykonywania tych procedur.
Jeśli zmienna na poziomie procedury jest zadeklarowana przy użyciu słowa kluczowego Static, zachowuje ona swoją wartość
przez cały czas wykonywania programu w dowolnym module
. Gdy cały program kończy się, zmienna traci swój zasięg i wartość.
Jej cykl życia jest taki sam jak zmiennych poziomu modułu
.
- • poziom procedury
- Opisuje instrukcje zawarte w procedurze typu Function, Property lub Sub. Na ogół najpierw wyświetlane są deklaracje, a po nich następują przypisania i reszta wykonywalnego kodu programu. Należy pamiętać, że kod poziomu modułu znajduje się poza blokiem procedury.
- • moduł
- Zestaw deklaracji, po których następują procedury.
- • poziom modułu
- Opisuje kod programu w sekcji deklaracji modułu. Dowolny kod programu występujący poza procedurą określany jest jako kod programu na poziomie modułu. Deklaracje muszą wystąpić jako pierwsze, po nich następują procedury.
Poziom modułu
Zmienna na poziomie modułu różni się od zmiennej statycznej. W module standardowym
lub
module klasy
zachowuje ona swoją wartość do czasu zatrzymania programu. W module klasy zachowuje
swoją wartość tak długo, jak długo istnieje wystąpienie klasy. Zmienne na poziomie modułu zajmują zasoby pamięci do czasu
zresetowania ich wartości, dlatego winny być stosowane tylko wtedy, gdy są niezbędne.
Jeśli przed instrukcją Sub lub Function zostanie umieszczone słowo kluczowe Static, wartości wszystkich zmiennych zadeklarowanych na poziomie tej procedury są zachowywane między jej wywołaniami.
- • moduł standardowy
- Moduł zawierający jedynie deklaracje i definicje procedur, typów i danych. Domyślnie deklaracje i definicje na poziomie modułu standardowego mają status Public. Moduł standardowy w starszych wersjach języka Visual Basic nazywano modułem kodu programu.
- • moduł klasy
- Moduł zawierający definicję klasy, w tym definicje jej właściwości i metod.