Instruções de deftype

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

Sintaxe

DefBoolletterrange, [ letterrange ] . . .DefByteletterrange, [ letterrange ] . . .DefIntletterrange, [ letterrange ] . . .DefLngletterrange, [ letterrange ] . . .DefLngLngletterrange, [ letterrange ] . . . (válido somente em plataformas de 64 bits) DefLngPtrletterrange, [ letterrange ] . . .DefCurletterrange, [ letterrange ] . . .DefSngletterrange, [ letterrange ] . . .DefDblletterrange, [ letterrange ] . . .DefDecletterrange, [ letterrange ] . . .DefDateletterrange, [ letterrange ] . . .DefStrletterrange, [ letterrange ] . . .DefObjletterrange, [ letterrange ] . . .DefVarletterrange, [ 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 de função ou nome do procedimento Obter Propriedade 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 com suporte no momento)
DefDate Date
DefStr String
DefObj Object
DefVar Variantes

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

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

Uma instrução de tipoDef 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 and 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 declarado explicitamente com uma instrução de tipoDef, o tipo de dados padrão para todas as variáveis, todos os argumentos, todos os procedimentos de função e todos os procedimentos Def éVariant.

Quando você especifica um intervalo de letras, ele geralmente define o tipo de dados para variáveis que começam com letras nos primeiros 128 caracteres do conjunto de caracteres. No entanto, quando você especifica o intervalo de letras A-Z, você define o padrão como 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 tipoDef. Depois que um intervalo tiver sido especificado, se você incluir uma letra definida anteriormente em outra instrução de tipoDef, 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 tipoAs.

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

DefInt A-Z
Dim TaxRate As Double

As instruções de tipo de 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.