Заява про тип VBA (приклад) | Як оголосити змінні з типом VBA?

Тип - це оператор у VBA, який використовується для визначення змінних, подібних до функції DIM, він використовується на визначеному користувачем рівні, коли ми маємо одне або кілька значень у змінній, існує дві номенклатури для оператора типу, який є загальним або приватним, однак вони необов’язкові для використання, але потрібні ім’я змінної та ім’я елемента.

Що таке оператор типу в Excel VBA?

Заява про тип VBA використовується для визначення змінних під одним іменем групи з різними типами даних, присвоєними кожній змінній. Це допомагає нам згрупувати кілька змінних під одним об’єктом, щоб використовувати їх під визначеним іменем типу.

Оголошуючи оператор Type, ми можемо уникнути використання модулів Class у VBA. Йому не потрібні будь-які рядкові модулі, оскільки його можна вбудувати у вже існуючі модулі, що може заощадити нам місце.

В одній з попередніх статей ми обговорили “VBA ENUM”, щоб об’єднати всі змінні під назвою єдиної групи.

Наприклад, якщо у вас є назва групи під назвою «Мобільні телефони», у нас є такі члени групи, як «Redmi, Oppo, Vivo, Samsung, LG та ін.». Таким чином, заява Enum ми можемо згрупувати разом із відповідними значеннями.

Enum Mobiles

Редмі = 12000

Oppo = 18000

Vivo = 18000

Samsung = 25000

LG = 15000

Кінець перерахування

Ось так ми створили переліки в цій статті. Проблема з оператором Enum, оскільки він може містити лише тип даних LONG. Для того, щоб згрупувати змінні з різними типами даних, ми можемо використовувати “Відомості про тип VBA”. У цій статті ми покажемо вам, як побудувати оператор Type у VBA. Читайте далі ...

Синтаксис

Перш ніж оголошувати змінні за допомогою оператора Type, подивіться на синтаксис:

Введіть Назва групи             [Змінна 1] як Тип даних змінної             [Змінна 2] як Тип даних змінної             [Змінна 3] як Тип змінної даних             [Змінна 4] як Тип змінної даних             [Змінна 5] як Тип даних змінної Кінець

Ці типи операторів можна оголосити в модулі, а також у верхній частині модуля, як наші глобальні змінні у VBA.

Тип VBA може містити об’єктні змінні, він може мати масиви. Однак він не може містити процедур, функцій.

Приклад заяви про тип у VBA

Ви можете завантажити цей шаблон виписки типу VBA тут - Шаблон виписки типу VBA

Добре, давайте розпочнемо процес оголошення змінних за допомогою оператора Type. Ми побачимо той самий приклад декларування мобільних брендів, як те, що ми використовували у VBA Enum.

Крок 1: У верхній частині модуля розпочніть слово “Тип” і дайте ім’я типу групи.

Код:

 Введіть Кінцевий тип MobileBrands 

Крок 2: Які речі ми зазвичай бачимо в Mobile Brands. Спочатку ми бачимо Name, тому оголосимо змінну як Name як String.

Код:

 Введіть ім'я MobileBrands як тип кінця рядка 

Крок 3: Після назви ми перевіряємо дату запуску. Оголосіть змінну як LaunchDate як дату.

Код:

 Введіть ім'я MobileBrands як рядок LaunchDate як дату Кінець 

Крок 4: Наступне, ми перевіряємо ємність сховища. Оголосити змінну як сховище як ціле число.

Код:

 Введіть ім'я MobileBrands як рядок LaunchDate як дату зберігання як цілочисельний тип кінця 

Крок 5: Наступне, ми перевіряємо ємність оперативної пам'яті.

Код:

 Введіть ім'я MobileBrands як рядок LaunchDate як дату зберігання як оперативну пам'ять як цілий тип кінця 

Крок 6: Нарешті ми перевіряємо ціну.

Код:

 Введіть Назва мобільних брендів як рядок LaunchDate Як дата зберігання як ціле Оперативна пам'ять як ціла ціна Як довгий тип 

Тепер у підпроцедурі, оголосивши змінну як Ім'я типу, тобто MobileBrands, ми можемо отримати доступ до всіх цих типів даних змінних.

Step 7: Create a subprocedure.

Code:

 Sub Type_Example1() End Sub 

Step 8: Now declare the variable “Mobile” as MobileBrnads.

Code:

 Sub Type_Example1() Dim Mobile As Mob End Sub 

Step 9: Now with the variable name “Mobile” we can access all the variables of “MobileBrands”.

Code:

Step 10: Now store each value like the below.

Code:

 Type 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.