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 e o tipo de retorno para procedimentos Function e Property Get cujos nomes começam com os caracteres especificados.

Sintaxe

DefBoolletterrange, [ letterrange ] . . .DefByteletterrange, [ letterrange ] . . .Defina o intervalode letras, [ intervalo de letras ] . . .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 do intervalo de letras 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 no intervalo de letras não é significativo.

Comentários

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

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

Por exemplo, no fragmento de programa a seguir, Message há 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 é usada. 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 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 Property Get será 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, ao especificar o intervalo de letras de A 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 de A a Z tiver sido especificado, você não poderá redefinir ainda mais nenhum subintervalo 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 do tipoAs.

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