Typ VBA

Typ to instrukcja w języku VBA, która służy do definiowania zmiennych podobnie jak funkcja DIM, jest używana na poziomie zdefiniowanym przez użytkownika, gdzie mamy jedną lub więcej wartości w zmiennej, istnieją dwie nomenklatury dla instrukcji typu, które są publiczne lub prywatne są one opcjonalne, ale nazwa zmiennej i nazwa elementu są wymagane.

Co to jest instrukcja typu w Excel VBA?

Instrukcja typu VBA służy do definiowania zmiennych pod jedną nazwą grupy z różnymi typami danych przypisanymi do każdej zmiennej. Pomaga nam to zgrupować wiele zmiennych w jednym obiekcie, aby używać ich pod zdefiniowaną nazwą typu.

Deklarując instrukcję Type, możemy uniknąć używania modułów Class w VBA. Nie potrzebuje żadnych modułów łańcuchowych, ponieważ można go osadzić w już istniejących modułach, co pozwala zaoszczędzić miejsce.

W jednym z wcześniejszych artykułów omówiliśmy „VBA ENUM”, aby zgrupować wszystkie zmienne pod jedną nazwą grupy.

Na przykład, jeśli masz nazwę grupy o nazwie „Mobiles”, mamy członków grupy, takich jak „Redmi, Oppo, Vivo, Samsung, LG itd.”. Zatem wyrażenie Enum możemy pogrupować razem z ich odpowiednimi wartościami.

Enum Mobiles

Redmi = 12000

Oppo = 18000

Vivo = 18000

Samsung = 25000

LG = 15000

End Enum

W ten sposób stworzyliśmy wyliczenia w tym artykule. Problem z instrukcją Enum, ponieważ może ona zawierać tylko dane typu LONG. Aby pogrupować zmienne z różnymi typami danych, możemy użyć „instrukcji VBA TYPE”. W tym artykule pokażemy, jak utworzyć instrukcję Type w języku VBA. Czytaj…

Składnia

Zanim zadeklarujesz zmienne za pomocą instrukcji Type, spójrz na składnię:

Nazwa grupy typów             [Zmienna 1] jako Typ danych zmiennej             [Zmienna 2] jako Typ danych zmiennej             [Zmienna 3] jako Typ danych             zmiennej [Zmienna 4] jako Typ danych             zmiennej [Zmienna 5] Typ Typ danych zmiennej Typ końcowy

Tego typu instrukcje można zadeklarować w module, a także u góry modułu, tak jak nasze zmienne globalne w VBA.

Typ VBA może przechowywać zmienne obiektowe, może przechowywać tablice. Nie może jednak zawierać procedur, funkcji.

Przykład instrukcji typu w języku VBA

Możesz pobrać ten szablon oświadczenia typu VBA tutaj - Szablon oświadczenia typu VBA

Ok, zacznijmy proces deklarowania zmiennych instrukcją Type. Zobaczymy ten sam przykład deklarowania marek mobilnych, jak w przypadku VBA Enum.

Krok 1: U góry modułu rozpocznij słowo „Typ” i nadaj nazwę Typowi grupy.

Kod:

 Wpisz Typ końcowy MobileBrands 

Krok 2: Co zwykle widzimy w markach mobilnych. Najpierw widzimy nazwę, więc zadeklaruj zmienną jako nazwę jako ciąg.

Kod:

 Wpisz nazwę MobileBrands jako typ końca ciągu 

Krok 3: Po nazwie sprawdzamy datę premiery. Zadeklaruj zmienną jako LaunchDate jako Date.

Kod:

 Wpisz nazwę MobileBrands jako ciąg Data rozpoczęcia jako Data Typ zakończenia 

Krok 4: Następną rzeczą jest sprawdzenie pojemności pamięci. Aby zadeklarować zmienną jako Storage as Integer.

Kod:

 Wpisz MobileBrands Name As String LaunchDate As Date Storage As Integer End Type 

Krok 5: Następną rzeczą jest sprawdzenie pojemności pamięci RAM.

Kod:

 Wpisz MobileBrands Name As String LaunchDate As Date Storage As RAM As Integer End Type 

Krok 6: W końcu sprawdzamy cenę.

Kod:

 Wpisz nazwę marki MobileBrands jako ciąg Data rozpoczęcia jako data Przechowywanie jako liczba całkowita Pamięć RAM jako liczba całkowita Cena jako typ długiego końca 

Teraz w procedurze Sub, deklarując zmienną jako nazwę typu, tj. MobileBrands, możemy uzyskać dostęp do wszystkich tych typów danych zmiennych.

Krok 7: Utwórz podprocedurę.

Kod:

 Sub Type_Example1 () End Sub 

Krok 8: Teraz zadeklaruj zmienną „Mobile” jako MobileBrnads.

Kod:

 Sub Type_Example1 () Dim Mobile As Mob End Sub 

Krok 9: Teraz dzięki nazwie zmiennej „Mobile” mamy dostęp do wszystkich zmiennych „MobileBrands”.

Kod:

Krok 10: Teraz zapisz każdą wartość jak poniżej.

Kod:

 Wpisz MobileBrands Name As String LaunchDate As Date Storage As Integer RAM As Integer Price As Long End Type Sub Type_Example1 () Dim Mobile As MobileBrands Mobile.Name = "Redmi" Mobile.LaunchDate = "10-Jan-2019" Mobile.Storage = 62 Mobile.RAM = 6 Mobile.Price = 16500 MsgBox Mobile.Name & vbNewLine & Mobile.LaunchDate & vbNewLine & _ Mobile.Storage & vbNewLine & Mobile.RAM & vbNewLine & Mobile.Price End Sub 

Finally, show the result in a VBA message box like the below one.

Code:

 Sub Type_Example1() Dim Mobile As MobileBrands Mobile.Name = "Redmi" Mobile.LaunchDate = "10-Jan-2019" Mobile.Storage = 62 Mobile.RAM = 6 Mobile.Price = 16500 MsgBox Mobile.Name & vbNewLine & Mobile.LaunchDate & vbNewLine & _ Mobile.Storage & vbNewLine & Mobile.RAM & vbNewLine & Mobile.Price End Sub 

Now run the code using F5 key or manually and see the result in a message box.

Like this, we can use the “VBA Type” statement to define new data type in the subprocedure.

VBA Types vs VBA Class

VBA Type often compared to VBA Class modules. There are certain differences between them. Below are the common differences.

  • Difference 1: VBA Type can contain only Public variables. VBA Class can contain both Public as well as Private variables.
  • Difference 2: VBA Type cannot contain Procedures and Function. VBA Class contains both of them along with properties.
  • Difference 3: VBA Type can be declared in any of the modules and procedures. VBA Class can only be declared in dedicated class modules.