Instruções Deftype

Usado no nível do módulo para definir o tipo de dados padrão para variáveis, argumentos passados para procedimentos eo tipo de retorno para Procedimentos Function e Property Get cujos nomes começam com os caracteres especificados.

Sintaxe

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

O argumento letterrange necessário tem a seguinte sintaxe: letter1 [ - letter2 ]

Os argumentos letter1 e letter2 especificam o intervalo de nomes para o qual você pode definir um tipo de dados padrão. Cada argumento representa a primeira letra da variável, argumento, procedimento Function ou Nome do procedimento Property Get e pode ser qualquer letra do alfabeto. O caso de letras em letterrange não é significativo.

Comentários

O nome da instrução determina o tipo de dados.


Declaração Tipo de dados
DefBool Boolean
DefByte Byte
DefInt Integer
DefLng Long
DefLngLng LongLong (válido somente em plataformas de 64 bits)
DefLngPtr LongPtr
DefCur Currency
DefSng Single
DefDbl Double
DefDec Decimal (não suportado no momento)
DefDate Date
DefStr String
DefObj Object
DefVar Variant

Por exemplo, no fragmento de programa a seguir, Message é uma variável de cadeia de caracteres.

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

Uma instrução de tipo Def afeta apenas o módulo em que ele é usado. 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 Function e Property 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. Se não for declarada explicitamente com uma instrução de tipo Def, o tipo de dados padrão para todas as variáveis, todos os argumentos, todos os procedimentos function e todos os procedimentos Property Get é Variant.

Quando você especifica um intervalo de letras, geralmente define o tipo de dados para variáveis que começam com letras nos primeiros 128caracteres do conjunto de caracteres . 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).

Depois que o intervalo A-Z tiver sido especificado, você não poderá redefinir ainda mais quaisquer subranges de variáveis usando instruções de tipo Def. Depois que um intervalo for especificado, se você incluir uma letra definida anteriormente em outra instrução de tipo Def, ocorrerá um erro. No entanto, você pode especificar explicitamente o tipo de dados de qualquer variável, definida ou não, usando uma instrução Dim com uma cláusula De tipo.

Por exemplo, você pode usar o código a seguir no nível do módulo para definir uma variável como double, mesmo que o tipo de dados padrão seja Integer.

DefInt A-Z
Dim TaxRate As Double

As instruçõesde tipo def não afetam elementos de tipos definidos pelo usuário porque os elementos devem ser declarados explicitamente.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? 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.