Typy danych w Excel VBA

1. Wprowadzenie do typów danych

Dlaczego tak ważne jest przypisanie zmiennej do właściwego typu danych? Nasz program jak i jego zmienne używają zasoby naszego komputera. Jeśli chcemy zadbać o to, by nasz program szybko i sprawnie działał, dobieramy takie typy danych, które rzeczywiście chcemy wykorzystać. Dla przykładu nie zapisujemy dat i liczb w formie tekstowej, mimo że jest to oczywiście możliwe. Nie korzystamy także np z typu Double do zapisania liczb, jeśli zmiennej chcemy przyporządkować liczby w skali od 1 do 10. W tym celu idealnie sprawdzi się typ Byte.

2. Numeryczne typy danych VBA

Spis numerycznych typów danych w Excelowym VBA oraz ich dokładny opis przedstawiony jest w poniższej tabelce:

Typ danychOpisUżycie pamięci w BajtachWartość defaultZakres przyjmowanych wartości
ByteTyp używany dla liczb naturalnych z zakresu 0-2551B0Liczby naturalne z zakresu od 0 do 255
IntegerTyp używany dla liczb całkowitych o niskich wartościach2B0Liczby całkowite z zakresu -32768 do 32767
LongTyp używany dla liczb całkowitych o wysokich wartościach4B0Liczby całkowite z zakresu od –2,147,483,648 do 2,147,486,647
SingleTyp używany do przechowywania liczb rzeczywistych4B0Liczby z zakresu od -3.402823e38 do 1.401298e45
DoubleTyp używany do przechowywania liczb rzeczywistych8B0Liczby od -1.79769313486232e+308 do -4.94065645841247E-324 dla wartości ujemnych
Liczby od 4.94065645841247E-324 do 1.79769313486232e+308 dla wartości dodatnich
CurrencyTyp używany do przechowywania liczb w jednostkach pieniężnych8B0Liczby z zakresu –922,337,203,477.5808 do 922,337,203,685,477.5807
Variant (numeryczny)Typ używany zarówno do przechowywania danych liczbowych jak i znakowych16 BvbEmptyLiczby z zakresów odpowiadających typom Long oraz Double

Przypisania zmiennej do konkretnego typu danych dokonujemy w sposób zapisany w poniższym przykładzie. Po zdefiniowaniu zmiennej możemy także bezpośrednio przypisać do niej wartość. Możesz to zrobić w sposób przedstawiony w poniższym przykładzie.

Sub PrzypisanieTypowDanych() 
'numeryczne 
Dim ByteExample As Byte 
Dim IntExample As Integer 
Dim LngExample As Long 
Dim SglExample As Single 
Dim DblExample As Double 
Dim CurrExample As Currency 
Dim VarExample As Variant '(numeryczny) 
'Poniżej przykładowe przypisanie wartości do wcześniej opisanych zmiennnych 
'numeryczne ByteExample = 255 
IntExample = 123 
LngExample = 1000000 
SglExample = 123.456 
DblExample = -4.94065645841247E-324 
CurrExample = 123.456 
VarExample = -4.94065645841247E-324 
End Sub
Kurs Excel VBA - Typy danych VBA
Kurs Excel VBA – Typy danych VBA

3. Nienumeryczne typy danych VBA

Typ danychOpisUżycie pamięci w BajtachWartość defaultZakres przyjmowanych wartości
BooleanTyp używany dla wartości logicznych Prawda / Fałsz2BFalseWartość True lub False
DateTyp przechowujący datę8B0Daty z zakresy od 100/01/01 do 9999/12/31
String (bez zdefiniowanej długości)Typ używany do przechowywania danych znakowych10B + liczba znakówCiąg tekstowy o zerowej długościod 0 do 2mld znaków
String (o stałej długości)Typ używany do przechowywania danych znakowychLiczba znakówLiczba zdefiniowanych znaków pokazana jako spacjeOd 1 o 65400 znaków
Variant (znakowy)Typ używany zarówno do przechowywania danych liczbowych jak i znakowych22B + liczba znakówvbEmptyZakres odpowiada zakresowi String bez zdefiniowanej długości, a więc od 0 do 2mld
ObjectTyp używany w przypadku działania na obiektach4BNothingDowolny osadzony obiekt
Sub PrzypisanieTypowDanych()
'nienumeryczne
Dim BlExample As Boolean
Dim DtExample As Date
Dim StrExample As String '(bez zdefiniowanej długości)
Dim StrExample2 As String * 10 '(o stałej długości np 10 znaków)
Dim VarExample2 As Variant '(znakowy)
Dim ObjExample As Object 'naszym obiektem  tym wypadku będzie aktualnie użytkowany arkusz
'Poniżej przykładowe przypisanie wartości do wcześniej opisanych zmiennnych
'nienumeryczne
BlExample = True
DtExample = Date 'data bieżąca
StrExample = "Dowolny tekst"
StrExample2 = "10 znaków"
VarExample2 = "Dowolny tekst"
End Sub

Jak widzimy, typ Variant może być zastosowany zarówno do zapisywania liczb jak i ciągów znaków. Jeśli z góry wiemy, jaką wartość docelową powinny przyjmować nasze zmienne, to używanie tego typu danych nie jest zalecane. Stosujemy go w przypadkach krótkich, pisanych na szybko programów. Typy danych VBA w pakiecie Office, spisane są także w witrynie Microsoft pod tym linkiem.

4. Zadania (Rozwiązanie możesz wpisać w komentarzu)

4.1 Stwórz prosty przykład. Zdefiniuj 4 zmienne liczbowe o różnych typach danych. Sprawdź, czy możesz wykonywać na nich działania arytmetyczne. np a*b+c^d. Wykorzystaj typy Byte, Single, Integer, Double.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

4 komentarze “Typy danych w Excel VBA”