Instruções DeftypeDeftype statements

Usada no nível do módulo para definir o tipo de dados padrão para variáveis, argumentos passados para procedimentose o tipo de retorno para procedimentos de função e propriedade que têm os nomes começam com o caracteres especificados.Used at the module level to set the default data type for variables, arguments passed to procedures, and the return type for Function and Property Get procedures whose names start with the specified characters.

SintaxeSyntax

DefBool letterrange, [ letterrange ] ...DefBool letterrange, [ letterrange ] . . .
DefByte letterrange, [ letterrange ] ...DefByte letterrange, [ letterrange ] . . .
DefInt letterrange, [ letterrange ] ...DefInt letterrange, [ letterrange ] . . .
DefLng letterrange, [ letterrange ] ...DefLng letterrange, [ letterrange ] . . .
DefLngLng letterrange, [ letterrange ] ...DefLngLng letterrange, [ letterrange ] . . . (válido somente em plataformas de 64 bits)(valid on 64-bit platforms only)
**DefLngPtr** letterrange, [ letterrange ] **... **DefLngPtr** letterrange, [ letterrange ] **. . .
DefCur letterrange, [ letterrange ] ...DefCur letterrange, [ letterrange ] . . .
DefSng letterrange, [ letterrange ] ...DefSng letterrange, [ letterrange ] . . .
DefDbl letterrange, [ letterrange ] ...DefDbl letterrange, [ letterrange ] . . .
DefDec letterrange, [ letterrange ] ...DefDec letterrange, [ letterrange ] . . .
DefDate letterrange, [ letterrange ] ...DefDate letterrange, [ letterrange ] . . .
DefStr letterrange, [ letterrange ] ...DefStr letterrange, [ letterrange ] . . .
DefObj letterrange, [ letterrange ] ...DefObj letterrange, [ letterrange ] . . .
DefVar letterrange, [ letterrange ] ...DefVar letterrange, [ letterrange ] . . .

O argumento Required letterrange tem a seguinte sintaxe: letter1 [ - letter2 ]The required letterrange argument has the following syntax: letter1 [ - letter2 ]

Os argumentos letter1 e letter2 especificam o intervalo de nome para o qual você pode definir um tipo de dados padrão.The letter1 and letter2 arguments specify the name range for which you can set a default data type. Cada argumento representa a primeira letra da variável, argumento, procedimento Function ou propriedade obter nome do procedimento e pode ser qualquer letra do alfabeto.Each argument represents the first letter of the variable, argument, Function procedure, or Property Get procedure name, and can be any letter of the alphabet. O caso de letras no letterrange não é significativo.The case of letters in letterrange isn't significant.

ComentáriosRemarks

O nome do demonstrativo determina o tipo de dados.The statement name determines the data type.


DeclaraçãoStatement Tipo de dadosData type
DefBoolDefBool BooleanBoolean
DefByteDefByte ByteByte
DefIntDefInt IntegerInteger
DefLngDefLng LongLong
DefLngLngDefLngLng LONGLONG (válido somente em plataformas de 64 bits)LongLong (valid on 64-bit platforms only)
DefLngPtrDefLngPtr LongPtrLongPtr
DefCurDefCur CurrencyCurrency
DefSngDefSng SingleSingle
DefDblDefDbl DoubleDouble
DefDecDefDec Decimal (não suportado no momento)Decimal (not currently supported)
DefDateDefDate DateDate
DefStrDefStr StringString
DefObjDefObj ObjectObject
DefVarDefVar VariantVariant

Por exemplo, no fragmento do programa a seguir Message , há uma variável de cadeia de caracteres.For example, in the following program fragment, Message is a string variable.

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

Uma instrução de_tipo_ defafeta somente o módulo em que ela é usada.A Deftype statement affects only the module where it is used. Por exemplo, uma instrução DefInt em um módulo afeta apenas o tipo de dados padrão de variáveis, argumentos passados para procedimentos e o tipo de retorno para procedimentos de função e propriedade Get declarados nesse módulo; o tipo de dados padrão de variáveis, argumentos e tipos de retorno em outros módulos não é afetado.For example, a DefInt statement in one module affects only the default data type of variables, arguments passed to procedures, and the return type for Function and Property Get procedures declared in that module; the default data type of variables, arguments, and return types in other modules is unaffected. Se não for explicitamente declarado com uma instrução de_tipo_ def, o tipo de dados padrão para todas as variáveis, todos os argumentos, todos os procedimentos de função e todos os procedimentos de obtenção de propriedade será Variant.If not explicitly declared with a Deftype statement, the default data type for all variables, all arguments, all Function procedures, and all Property Get procedures is Variant.

Quando você especifica um intervalo de letras, geralmente define o tipo de dados para variáveis que começam com letras nos primeiros 128 caracteres do conjunto de caracteres.When you specify a letter range, it usually defines the data type for variables that begin with letters in the first 128 characters of the character set. No entanto, quando você especifica o intervalo–de letras a Z, define o padrão para o tipo de dados especificado para todas as variáveis, incluindo variáveis que começam com caracteres internacionais da parte estendida do conjunto–de caracteres (128 255).However, when you specify the letter range A–Z, you set the default to the specified data type for all variables, including variables that begin with international characters from the extended part of the character set (128–255).

Depois que o intervalo A-Z tiver sido especificado, você não poderá redefinir mais os subintervalos de variáveis usando instruções de_tipo_ def.After the range A-Z has been specified, you can't further redefine any subranges of variables by using Deftype statements. Após um intervalo ter sido especificado, se você incluir uma letra previamente definida em outra instrução de_tipo_ def, ocorrerá um erro.After a range has been specified, if you include a previously defined letter in another Deftype statement, an error occurs. No entanto, você pode especificar explicitamente o tipo de dados de qualquer variável, definido ou não, usando uma instrução Dim com uma cláusula as Type .However, you can explicitly specify the data type of any variable, defined or not, by using a Dim statement with an As type clause.

Por exemplo, você pode usar o código a seguir no nível do módulo para definir uma variável como um duplo , embora o tipo de dados padrão seja inteiro.For example, you can use the following code at the module level to define a variable as a Double even though the default data type is Integer.

DefInt A-Z
Dim TaxRate As Double

Def instruções Type não afetam elementos de tipos definidos pelo usuário porque os elementos devem ser declarados explicitamente.Deftype statements don't affect elements of user-defined types because the elements must be explicitly declared.

Confira tambémSee also

Suporte e comentáriosSupport and feedback

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação?Have questions or feedback about Office VBA or this documentation? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.