• Zasady nadawania nazw zmiennym, procedurom, stałym, i argumentom
- Przy nadawaniu nazw procedurom, stałym, zmiennym i argumentom w module programu pisanego w języku Visual Basic należy stosować następujące zasady:
- Pierwszym znakiem nazwy musi być literą,
- Nie należy używać w nazwie znaków spacji, kropki (.), wykrzyknika (!) i znaków @, &, $, #,
- Długość nazwy nie może przekroczyć 255 znaków,
- Ogólnie, nie należy stosować nazw takich samych jak nazwy procedur typu
Function
,instrukcji
imetod
języka Visual Basic. Powoduje to bowiem przesłanianie odpowiadających im słów kluczowych języka. Aby wykorzystać wbudowaną funkcję, instrukcję lub metodę języka, która jest w konflikcie z nadaną nazwą, należy ją jawnie zidentyfikować. Nazwę wbudowanej funkcji, instrukcji lub metody należy poprzedzić nazwą związanej z nią biblioteki typów
Na przykład, jeśli w kodzie programu zadeklarowano zmienną o nazwie Left, funkcja wbudowana Left może być wywołana tylko z wykorzystaniem konstrukcji VBA.Left, - Nie można powtarzać nazw wewnątrz tego samego poziomu zakresu. Na przykład, nie można zadeklarować dwóch zmiennych o MojaZmienna w tej samej procedurze. Można jednak zadeklarować zmienną prywatną o nazwie MojaZmienna oraz zmienną o nazwie MojaZmienna na poziomie procedury w tym samym module,
Uwaga. Język Visual Basic nie uwzględnia wielkości liter, jednak zachowuje ich wielkość występującą w instrukcji, w której deklarowana jest nazwa.
• Deklarowanie zmiennych
Aby jawnie zadeklarować zmienną, należy skorzystać z instrukcji Dim, która to deklaruje zmienną i przydziela pamięć. W instrukcji tej należy podać nazwę deklarowanej zmiennej. Składnia instrukcji Dim wygląda następująco:
Dim [WithEvents] nazwa_zmiennej [([indeksy])] [As [New] typ] [, [WithEvents] nazwa_zmiennej [([indeksy])] [As [New] typ]] . . .
Dim [NazwaZmiennej] [As [typ]]
Zmienne zadeklarowane za pomocą instrukcji Dim na poziomie modułu są dostępne we wszystkich procedurach wewnątrz modułu. Na poziomie procedury, zmienne dostępne są tylko wewnątrz procedury. Aby zadeklarować typ zmiennej, należy wykorzystać instrukcję Dim na poziomie modułu lub procedury. Na przykład, poniższa instrukcja deklaruje zmienną typu Integer:
Dim Moja_Liczba As Integer
Instrukcję Dim można wykorzystać do zadeklarowania zmiennej obiektowej. Poniższa instrukcja deklaruje zmienną dla nowego wystąpienia formularza:
Dim MojaZmienna As Form_NazwaFormularza
Jeżeli przy deklaracji zmiennej obiektowej pominięto słowo kluczowe New, zmienna odwołująca się do obiektu musi zostać przed użyciem przypisana do istniejącego obiektu za pomocą instrukcji Set.
Dim MojaZmienna As Form
Set X = Form_NazwaFormularza
Zanim zadeklarowana zmienna zostanie przypisana do obiektu, przyjmuje wartość specjalną Nothing, co oznacza, że zmienna nie odwołuje się do żadnego określonego wystąpienia obiektu.
Instrukcję Dim z pustymi nawiasami można wykorzystać do deklaracji tablicy dynamicznej. Po zadeklarowaniu takiej tablicy, do określenia liczby wymiarów i liczby elementów tablicy należy wewnątrz procedury użyć instrukcji ReDim.
Dim MojaTablica() As String
ReDim MojaTablica(0 To 9)
Przy próbie ponownej deklaracji wymiaru tablicy o rozmiarze jawnie zadeklarowanym za pomocą instrukcji Private, Public
lub Dim podczas kompilacji wystąpi błąd:
Dim MojaTablica(0 To 9) As String
ReDim MojaTablica(0 To 19) As String

„Tablica jest już zwymiarowana”.
Uwaga. Jeżeli instrukcja Dim występuje w procedurze, zwykle umieszczana jest na początku procedury.
• Typy zmiennych
Typ zmiennej | Rozmiar | Zakres |
---|---|---|
Byte | 1 bajt | Liczba z zakresu od 0 do 255 |
Boolean | 2 bajty | True lub False (Prawda/Fałsz) |
Integer (dwubajtowa liczba całkowita) | 2 bajty | Od –32 768 do 32 767 |
Long (czterobajtowa liczba całkowita) | 4 bajtów | Od –2 147 483 648 do 2 147 483 647 |
LongLong (ośmiobajtowa liczba całkowita) |
8 bajtów | Od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807 (tylko 64-bitowe środowisko) |
LongPtr (czterobajtowa liczba całkowita typu Long w 32-bitowym środowisku, ośmiobajtowa liczba całkowita typu LongLong w 64-bitowym środowisku) | 4 bajty w 32-bitowym środowisku, 8 bajtów w 64-bitowym środowisku |
Od -2 147 483 648 do 2 147 483 647 w 32-bitowym środowisku, od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807 w 64-bitowym środowisku. LongPtr nie jest prawdziwym typem danych. W środowisku 32-bitowym przyjmuje typ Long, a w środowisku 64-bitowym przyjmuje typ LongLong. Typ ten jest zalecany przy deklarowaniu wskaźników i uchwytów, zarówno w środowisku 32-bitowym jak i 64-bitowym, co umożliwia pisanie przenośnego kodu, który można uruchomić w zarówno 32-bitowym i 64-bitowym środowisku. |
Single (liczba zmiennoprzecinkowa pojedynczej precyzji) |
4 bajty | Od –3,402823E38 do –1,401298E–45 dla wartości ujemnych i od 1,401298E–45 do 3,402823E38 dla wartości dodatnich |
Double (liczba zmiennoprzecinkowa podwójnej precyzji) | 8 bajtów | Od –1,79769313486231E+308 do –4,94065645841247E–324 dla wartości ujemnych i od 4,94065645841247E–324 do 1,79769313486232E+308 dla wartości dodatnich |
Currency (Liczba ośmiobajtowa, stała) | 8 bajtów | Od –922 337 203 685 477,5808 do 922 337 203 685 477,5807 dokładność zapisu - cztery miejsca po przecinku |
Decimal | 14 bajtów | Od +/–79 228 162 514 264 337 593 543 950 335 (liczby całkowite), +/–7,9228162514264337593543950335 (wartości ułamkowe z 28 cyframi znaczącymi) - najmniejsza wartość niezerowa to +/–0,0000000000000000000000000001 |
Date | 8 bajtów | Od 1 stycznia 100 roku do 31 grudnia 9999 roku |
Object | 4 bytes | Referencja (odwołanie) do obiektu |
String (zmienna długość) | 10 bajtów plus długość ciągu | Od 0 do około 2 000 000 000 znaków. Zależy od rozmiaru danych |
String (stała długość) | Liczba znaków | Od 1 do około 65 400 znaków |
Variant (dla liczb) | 16 bajtów | Dowolna wartość liczbowa mieszcząca się w zakresie typu Double |
Variant (dla ciągu znaków) | 22 bajty + długość ciągu znaków (24 bajtów w 64-bitowym systemie) | Od 0 do około 2 000 000 000 znaków. Zależy od rozmiaru danych. Tak samo jak typ String zmiennej długości |
User Type (typ użytkownika zdefiniowany za pomocą struktury Type) | Wielkość wymagana przez składowe elementy | Wielkość każdego element jest taka sama jak wielkość jego typu |
(*)Tablice W środowisku 32-bitowym tablica każdego typu danych wymaga 20 bajtów pamięci, plus 4 bajty na każdy wymiar tablicy, plus liczba bajtów zajmowanych przez dane. W środowisku 64-bitowym 24 bajty, ponieważ wskaźnk pvData w strukturze SAFEARRAY jest typu LonLong, plus 8 bajtów na każdy wymiar tablicy, plus liczba bajtów zajmowanych przez dane. Zmienna typu Variant zawierająca tablicę wymaga 12 bajtów więcej niż tablica określonego typu. |