Заявления о дефтипе
Используется на уровне модуля для настройки типа данных по умолчанию для переменных , аргументы передаются процедурам , а тип возврата для процедур Function и Property Get, имена которых начинаются с указанных символов.
Синтаксис
Letterrange DefBool , [ letterrange ] . . . DefByte letterrange, [ letterrange ] . . . DefInt letterrange, [ letterrange ] . . . DefLng letterrange, [ letterrange ] . . . Letterrange DefLngLng [ letterrange ] . . . (допустимо только на 64-битных платформах) Letterrange DefLngPtr [ letterrange ] . . . DefCur letterrange, [ letterrange ] . . . DefSng letterrange, [ letterrange ] . . . DefDbl letterrange, [ letterrange ] . . . Letterrange DefDec [ letterrange ] . . . DefDate letterrange, [ letterrange ] . . . DefStr letterrange, [ letterrange ] . . . DefObj letterrange, [ letterrange ] . . . Letterrange DefVar , [ letterrange ] . . .
Необходимый аргумент letterrange имеет следующий синтаксис: letter1 [ - letter2 ]
Аргументы letter1 и letter2 указывают диапазон имен, для которого вы можете задать тип данных по умолчанию. Каждый аргумент представляет первую букву переменной, аргумента, процедуры функции или имени процедуры Property Get и может быть любой буквой алфавита. Регистр букв в letterrange не имеет значения.
Примечания
Имя заявления определяет тип данных.
Statement | Тип данных |
---|---|
DefBool | Логический |
DefByte | Byte |
DefInt | 64-разрядное целое число. |
DefLng | Long |
DefLngLng | LongLong (действителен только на 64-битных платформах) |
DefLngPtr | LongPtr |
DefCur | Currency |
DefSng | Single |
DefDbl | 64-разрядное число с плавающей запятой двойной точности. |
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 символах набора символов. Однако при указании диапазона букв AZ– по умолчанию устанавливается указанный тип данных для всех переменных, включая переменные, которые начинаются с международных символов из расширенной части набора символов (128255–).
После того как диапазон A-Z был задан, вы не можете далее переопределять любые подустановки переменных с помощью заявлений Deftype. После заданного диапазона, если вы включаете ранее заданное письмо в другое заявление Deftype, возникает ошибка. Тем не менее, вы можете явно указать тип данных любой переменной, определенной или нет, с помощью дим-заявления с предложением типа As.
Например, вы можете использовать следующий код на уровне модуля, чтобы определить переменную как двойную , даже если тип данных по умолчанию является Integer.
DefInt A-Z
Dim TaxRate As Double
Операторы Deftype не затрагивают элементы пользовательских типов, так как эти элементы должны объявляться явно.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.