Операторы Deftype

Используется на уровне модуля для задания типа данных по умолчанию для переменных, аргументов, передаваемыхв процедуры, и типа возвращаемого значения для процедур Function и Property Get , имена которых начинаются с указанных символов.

Синтаксис

DefBoolletterrange, [ letterrange ] . .DefByteletterrange, [ letterrange ] . .DefIntletterrange, [ letterrange ] . .DefLngletterrange, [ letterrange ] . .DefLngLngletterrange, [ letterrange ] . . ( допустим только на 64-разрядных платформах) DefLngPtrletterrange, [ letterrange ] . .DefCurletterrange, [ letterrange ] . .DefSngletterrange, [ letterrange ] . . .DefDblletterrange, [ letterrange ] . .DefDecletterrange, [ letterrange ] . . .DefDateletterrange, [ letterrange ] . .DefStrletterrange, [ letterrange ] . .DefObjletterrange, [ letterrange ] . .DefVarletterrange, [ letterrange ] . .

Обязательный аргумент letterrange имеет следующий синтаксис: letter1 [ -letter2 ]

Аргументы letter1 и letter2 указывают диапазон имен, для которого вы можете задать тип данных по умолчанию. Каждый аргумент представляет первую букву переменной, аргумент, процедуру функции или имя процедуры Property Get и может быть любой буквой алфавита. Регистр букв в letterrange не имеет значения.

Замечания

Имя инструкции определяет тип данных.

Statement Тип данных
DefBool Boolean
DefByte Byte
DefInt Integer
DefLng Long
DefLngLng LongLong (действует только на 64-разрядных платформах)
DefLngPtr LongPtr
DefCur Currency
DefSng Одинарное с плавающей точкой
DefDbl Double
DefDec Decimal (в настоящее время не поддерживается)
DefDate Date
DefStr String
DefObj Object
DefVar Variant

Например, в следующем фрагменте Message программы является строковой переменной.

DefStr A-Q
. . .
Message = "Out of stack space."

Оператор Deftype влияет только на тот модуль, в котором он используется. Например, оператор DefInt в одном модуле затрагивает только тип данных по умолчанию тех переменных, переданных в процедуры аргументов и типа возвращаемого значения для процедур Function и Property Get, которые объявлены в этом модуле; при этом тип данных по умолчанию для переменных, аргументов и типов возвращаемых событий в других модулях не затрагивается. При отсутствии явного объявления с помощью оператора Deftype тип данных по умолчанию для всех переменных, всех аргументов, всех процедур Function и Property Get имеет значение Variant.

При указании диапазона букв он обычно определяет тип данных для переменных, которые начинаются с букв в первых 128 символах набора символов. Однако при указании диапазона букв A–Z по умолчанию устанавливается указанный тип данных для всех переменных, включая переменные, начинающиеся с международных символов из расширенной части набора символов (128–255).

После указания диапазона A–Z нельзя дополнительно переопределить какие-либо поддиасти переменных с помощью операторов типаDef. После указания диапазона при включении ранее определенной буквы в другой оператор типаDef возникает ошибка. Однако можно явно указать тип данных любой переменной, определенной или нет, с помощью инструкции Dim с предложением типаAs.

Например, можно использовать следующий код на уровне модуля, чтобы определить переменную как Double , даже если тип данных по умолчанию — Integer.

DefInt A-Z
Dim TaxRate As Double

Операторы Deftype не затрагивают элементы пользовательских типов, так как эти элементы должны объявляться явно.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.