Операторы 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 и обратная связь.