Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Используется на уровне модуля для задания типа данных по умолчанию для переменных, аргументов, передаваемыхв процедуры, и типа возвращаемого значения для процедур 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 и обратная связь.