Zmienna przechowywana jest w pamięci operacyjnej komputera i przechowuje pewną wartość. Każda zmienna ma swoją nazwę. Wewnątrz danej funkcji lub procedury nie mogą istnieć dwie zmienne o tej samej nazwie. Nazwa zmiennej musi składać się ze znaków lub znaków i cyfr. Nazwa zmiennej nie może się zaczynać od cyfry. Zmiennych używamy do przechowywania wartości wprowadzonych przez użytkownika, lub pośrednich wartości, które zostały obliczone na podstawie wcześniej wprowadzonych danych.
Zmienne deklaruje się przy pomocy słowa kluczowego Dim. W języku VBA nie ma obowiązku deklarowania nazw zmiennych, jednak jest to zalecane, gdyż pozwala to uniknąć różnych błędów w przyszłości.
Zmienne mogą przechowywać różne wartości: liczby całkowite, liczby rzeczywiste, liczby dodatnie i ujemne, obiekty a nawet ciągi znaków. W zależności od tego, jakie mamy potrzeby należy przypisać zmiennej odpowiedni typ. Poniższa tabela przedstawia jakie typy zmiennych obsługuje język VBA
Typ | Rozmiar w piamięci | Opis | Zakres wartości |
Byte | 1 bajt | Wartości dodatnie | 0 do 255 |
Boolean | zależnie od systemu | Dwie wartości | True lub False |
Integer | 2 bajty | wartości całkowite | -32,768 do +32,767 |
Long | 4 bajty | wartości całkowite | -2,147,483,648 do +2,147,483,647 |
Single | 4 bajty | Liczby rzeczywiste | -3.4e38 do +3.4e38 |
Double | 8 bajtów | Liczby rzeczywiste | -1.8e308 do +1.8e308 |
Currency | 8 bajtów | Liczby rzeczywiste o stałej ilości miejsc po przecinku | -922,337,203,685,477.5808 do +922,337,203,685,477.5807 |
Date | 8 bajtów | Typ przeznaczony dla dat | 1 styczeń 100 do 31 grudzień 9999 |
Object | 4 bajty | Wskaźnik na obiekt | wskaźnik na dowolny obiekt |
String | zależnie od zawartości | Zestaw znaków o zmiennej długości | Zmienny – do 2 miliardów znaków |
Variant | 16 bajtów | Może przechowywać dowolną z powyższych wartości |
Oto prosty przykład demonstrujący zastosowanie zmiennych.
Sub Zmienne()
'Deklaracja zmiennych
Dim Imie As String
Dim Nazwisko As String
Dim ImieNazwisko As String
Dim A As Long, B As Long, Pole As Long
'Przypisz zmiennym początkowe wartości
A = 5
B = 12
Imie = "Adam"
Nazwisko = "Kowalski"
'Przykładowe użycie zmiennych
Obwód = A * B
ImieNazwisko = Imie + " " + Nazwisko
'Wyświetl zawartości zmiennych ImieNazwisko oraz Obwód
MsgBox ImieNazwisko
MsgBox Obwód
End Sub
W powyższym przykładzie najpierw zadeklarowaliśmy trzy zmienne typu String (przechowują one tekst) oraz trzy zmienne typu Long (przechowują one dane liczbowe całkowite). Następnie przypisaliśmy zmiennym przykładowe wartości (zauważ, że dane tekstowe muszą zostać objęte w cudzysłów). W kolejnym kroku wykonaliśmy dwie operacje na zmiennych: do zmiennej o nazwie Obwód przypisaliśmy iloczyn dwóch zmiennych A i B. Natomiast do zmiennej ImieNazwisko przypisaliśmy ciąg znaków, który został z połączenia dwóch zmiennych: Imie i Nazwisko oraz odstępu (pusta spacja w cudzysłowie). Na końcu za pomocą instrukcji MsgBox wyświetliliśmy zawartości dwóch ostatnich zmiennych.
Zwróć uwagę na wcześniejsze przykłady (opisywane w rozdziale Instrukcja warunkowa IF). Tam również były używane zmienne. Wynik funkcji MsgBox został zapisany do zmiennej o nazwie Odp (zmienna ta nie była deklarowana). Następnie w instrukcji warunkowej If sprawdzaliśmy, czy zmienna zawiera odpowiednią wartość.