Оператор Type

Используется на уровне модуля для определения определяемого пользователем типа данных , содержащего один или несколько элементов.

Синтаксис

[ Частный | Public ] Typevarnameelementname [ ( [ subscripts ] ) ] Astype
[ elementname [ ( [ subscripts ] ) ] Astype ] . . .
End Type

Синтаксис инструкции Type состоит из следующих частей:

Part Описание
Public Необязательный параметр. Используется для объявления пользовательских типов, доступных всем процедурам во всех модулях во всех проектах.
Private Необязательный параметр. Используется для объявления пользовательских типов, доступных только внутри модуля, в котором сделано их объявление.
варнаме Обязательно. Имя пользовательского типа, соответствует стандартным соглашениям об именовании переменных.
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) по умолчанию. Эту видимость можно изменить с помощью ключевого слова Private .

В блоках 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 и обратная связь.