Typy danych w Excel VBA 4


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.

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

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 email nie zostanie opublikowany.

4 komentarzy do “Typy danych w Excel VBA

  • Kuba

    Sub zmienne()
    Dim zmienna1 As Byte
    Dim zmienna2 As Single
    Dim zmienna3 As Integer
    Dim zmienna4 As Double

    zmienna1 = 2
    zmienna2 = 3
    zmienna3 = 4
    zmienna4 = 5

    Cells(1, 1) = zmienna2 + zmienna1 * zmienna3 * zmienna4

    End Sub

  • Marcin

    Option Explicit
    Sub TypyDanych3()

    Sheets.Add
    ActiveSheet.Name = “Arkusz2”
    Sheets(“Arkusz2”).Select

    Dim btZmienna1 As Byte
    Dim sglZmienna2 As Single
    Dim intZmienna3 As Integer
    Dim dblZmienna4 As Double

    btZmienna1 = 2
    sglZmienna2 = 10
    intZmienna3 = 25
    dblZmienna4 = 4000.25

    Range(“A1”) = btZmienna1 * sglZmienna2 + intZmienna3 * dblZmienna4

    End Sub