Тип - это оператор в VBA, который используется для определения переменных, аналогичных функции DIM, он используется на определяемом пользователем уровне, где у нас есть одно или несколько значений в переменной, есть две номенклатуры для оператора типа, который является общедоступным или частным, однако их использовать необязательно, но имя переменной и имя элемента являются обязательными.
Что такое оператор типа в Excel VBA?
Оператор типа VBA используется для определения переменных под одним именем группы с разными типами данных, присвоенными каждой переменной. Это помогает нам сгруппировать несколько переменных под одним объектом, чтобы использовать их под определенным именем типа.
Объявляя оператор Type, мы можем избежать использования модулей класса в VBA. Ему не нужны строковые модули, потому что он может быть встроен в уже существующие модули, что может сэкономить нам место.
В одной из предыдущих статей мы обсуждали «VBA ENUM» для группирования всех переменных под одним именем группы.
Например, если у вас есть название группы «Мобильные телефоны», у нас есть такие члены группы, как «Redmi, Oppo, Vivo, Samsung, LG и т. Д.». Таким образом, заявление Enum мы можем сгруппировать вместе с их соответствующими значениями.
Enum Mobiles
Редми = 12000
Оппо = 18000
Виво = 18000
Самсунг = 25000
LG = 15000
Конец перечисления
Таким образом, мы создали перечисления в этой статье. Проблема с оператором Enum, поскольку он может содержать только тип данных LONG. Чтобы сгруппировать переменные с разными типами данных, мы можем использовать «Оператор VBA TYPE». В этой статье мы покажем вам, как создать оператор Type в VBA. Читать дальше…
Синтаксис
Прежде чем объявлять переменные с помощью оператора Type, взгляните на синтаксис:
Имя группы типов [Переменная 1] как Тип данных переменной [Переменная 2] как Тип данных переменной [Переменная 3] как Тип данных переменной [Переменная 4] как Тип данных переменной [Переменная 5] как Тип данных переменной, Конечный тип
Эти типы операторов могут быть объявлены внутри модуля, а также в верхней части модуля, как наши глобальные переменные в VBA.
Тип VBA может содержать объектные переменные, он может содержать массивы. Однако он не может содержать процедур, функций.
Пример инструкции типа в VBA
Вы можете скачать этот шаблон заявления типа VBA здесь - Шаблон заявления типа VBAХорошо, давайте начнем процесс объявления переменных с помощью оператора Type. Мы увидим тот же пример объявления мобильных брендов, который мы использовали в VBA Enum.
Шаг 1: В верхней части модуля начните слово «Тип» и дайте имя Типу группы.
Код:
Тип Мобильные бренды Тип конца
Шаг 2. Что мы обычно видим в мобильных брендах? Сначала мы видим имя, поэтому объявите переменную как имя как строку.
Код:
Введите имя MobileBrands как строку Тип конца
Шаг 3: После названия мы проверяем дату запуска. Объявите переменную LaunchDate как Date.
Код:
Введите имя MobileBrands в виде строки LaunchDate As Date End Type
Шаг 4: Далее мы проверяем емкость хранилища. Чтобы объявить переменную как Storage as Integer.
Код:
Тип MobileBrands Имя как строка LaunchDate как дата Хранение как целое число Тип конца
Шаг 5: Далее мы проверяем объем оперативной памяти.
Код:
Тип MobileBrands Имя как строка LaunchDate как дата Хранение как RAM как целое число Тип конца
Шаг 6: Наконец, мы проверяем цену.
Код:
Тип MobileBrands Имя как строка LaunchDate как дата Хранение как целое число RAM как целое Цена как длинный тип конца
Теперь в подпроцедуре, объявив переменную как имя типа, т.е. 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.