End Type
Пользовательские типы данных
Типы данных по умолчанию
Чтобы неописанным переменным по умолчанию не присваивался тип Variant, поместите в начало модуля инструкцию DefType. Например, чтобы присваивать всем необъявленным переменным тип Integer, вставьте перед всеми подпрограммами инструкцию
DefInt A-Z
Аргументы A-Z после ключевого слова DefInt означают, что все необъявленные переменные, имена которых начинаются с А—Z (независимо от регистра), будут считаться целыми. Средствами нескольких инструкций DefType можно задать, чтобы тип переменной определялся по первой букве ее имени. Например, если Вы вставите в начало модуля приведенные ниже инструкции, все переменные с именами, начинающимися на I, приобретут тип Integer, переменные с буквы S — тип String, переменныe с буквы С — тип Currency.
DefInt I
DefStr S
DefCur С
Если в начале модуля нет инструкций DefType, всем необъявленным переменным будет присвоен тип Variant.
Замечание:
В одной строке кода VBA можно размещать несколько инструкций, разделяя их двоеточием, как показано в примере.
|
|
DefInt I: DefStr S: DefCur С
VBA позволяет разработчику создавать собственные типы данных, подобные структурам или записям, применяемым в других языках программирования. Пользовательские типы данных определяются как комбинации стандартных типов данных VBA. Их средствами Вы вправе помещать в одну переменную несколько значений различных типов. Определение переменной пользовательского типа несколько сложнее, чем определение переменной одного из стандартных типов, — сначала Вам придется определить сам тип. Определения типов всегда помещают в начало модуля VBA.
Type Персона
Имя As String
ДатаРождения As Date
Возраст As Integer
Рассмотрим компоненты этого определения пользовательского типа.
Туре Ключевое слово, отмечающее начало определения типа
Персона Имя пользовательского типа
Имя As String Первый элемент пользовательского типа
ДатаРождения As Date Второй элемент пользовательского типа
Возраст As Integer Третий элемент пользовательского типа
End Type Ключевые слова, отмечающие конец определения типа.
Когда эта инструкция помещена в начало модуля, она определяет пользовательский тип Персона, состоящий из трех элементов — строки Имя, целого числа Возраст и даты ДатаРождения. Как используется переменная такого типа? Взгляните на пример.
Type Персона
Имя As String
ДатаРождения As Date
Возраст As Integer
Sub ПользовательскийТипПеременной()
Dim User1 As Персона
User1.Имя = "Иванов”
User1.ДатаРождения = #2/23/75#
User1.Возраст = Year(Date) - Year(User1.ДатаРождения)
MsgBox User1. Имя & ", возраст " & User1.Возраст & _
" дата рождения " & User1.ДатаРождения