Оператор Type
Используется на уровне модуля для определения определяемого пользователем типа данных , содержащего один или несколько элементов.
Синтаксис
[ Частный | Public ] Типварнаме
-
elementname [ ( [ subscripts ] ) ] Кактип
[ elementname [ ( [ subscripts ] ) ] Astype ]
. . .
Синтаксис инструкции Type состоит из следующих частей:
Part | Описание |
---|---|
Public | Необязательный параметр. Используется для объявления пользовательских типов, доступных всем процедурам во всех модулях во всех проектах. |
Private | Необязательный параметр. Используется для объявления пользовательских типов, доступных только внутри модуля, в котором сделано их объявление. |
varname | Обязательно. Имя пользовательского типа, соответствует стандартным соглашениям об именовании переменных. |
elementname | Обязательно. Имя элемента пользовательского типа. Имена элементов также соответствуют стандартным соглашениям об именовании переменных, за исключением возможности использования ключевых слов. |
Индексы | Если иное не задано явно атрибутом lower, нижняя граница массива задается оператором Option Base. Если оператор Option Base отсутствует, нижняя граница равна нулю. |
type | Обязательно. Тип данных элемента; Может быть Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (для строк переменной длины), Stringlength (для строк фиксированной длины), Object, Variant, другой определяемый пользователем тип или тип объекта. |
Замечания
Оператор Type можно использовать только на уровне модуля. После объявления определяемого пользователем типа с помощью инструкции Type можно объявить переменную этого типа в любом месте область объявления. Для объявления переменной пользовательского типа используйте Dim, Private, Public, ReDim или Static.
В стандартных модулях и модулях классов пользовательские типы являются общедоступными (public) по умолчанию. Эту видимость можно изменить с помощью частного ключевое слово.
В блоках Type...End Type нельзя использовать номера строк и метки строк.
Пользовательские типы часто используются с записями данных, которые часто состоят из нескольких связанных элементов различных типов данных.
В следующем примере показано использование массивов фиксированного размера в пользовательском типе:
Type StateData
CityCode (1 To 100) As Integer ' Declare a static array.
County As String * 30
End Type
Dim Washington(1 To 100) As StateData
В предыдущем примере StateData
включает статический CityCode
массив, а запись Washington
имеет ту же структуру, что StateData
и .
При объявлении массива фиксированного размера в пользовательском типе его размеры должны быть объявлены с помощью числовых литералов или констант, а не переменных.
Пример
В этом примере инструкция Type используется для объявления пользовательского типа данных. Инструкция Type используется только на уровне модуля. Если она появляется в модуле класса, перед инструкцией Type должно использоваться ключевое слово Private.
Type EmployeeRecord ' Create user-defined type.
ID As Integer ' Define elements of data type.
Name As String * 20
Address As String * 30
Phone As Long
HireDate As Date
End Type
Sub CreateRecord()
Dim MyRecord As EmployeeRecord ' Declare variable.
' Assignment to EmployeeRecord variable must occur in a procedure.
MyRecord.ID = 12003 ' Assign a value to an element.
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.