Instrucciones Deftype
Se usa en el nivel de módulo para establecer el tipo de datos predeterminado para variables, argumentos pasados a procedimientos y el tipo de valor devuelto para los procedimientos Function y Property Get cuyos nombres comienzan por los caracteres especificados.
Sintaxis
DefBoolletterrange, [ letterrange ] . . .DefByteletterrange, [ letterrange ] . . .DefIntletterrange, [ letterrange ] . . .DefLngletterrange, [ letterrange ] . . .DefLngLngletterrange, [ letterrange ] . . (válido solo en plataformas de 64 bits) DefLngPtrletterrange, [ letterrange ] . . . .DefCurletterrange, [ letterrange ] . . .DefSngletterrange, [ letterrange ] . . .DefDblletterrange, [ letterrange ] . . .DefDecletterrange, [ letterrange ] . .DefDateletterrange, [ letterrange ] . . .DefStrletterrange, [ letterrange ] . .DefObjletterrange, [ letterrange ] . . .DefVarletterrange, [ letterrange ] . . .
El argumento letterrange necesario tiene la sintaxis siguiente: letter1 [ -letter2 ]
Los argumentos letter1 y letter2 especifican el intervalo de rango para el que se puede establecer un tipo de datos predeterminado. Cada argumento representa la primera letra de la variable, argumento, procedimiento Function o nombre del procedimiento Property Get y puede ser cualquier letra del alfabeto. No importa si las letras de letterrange están en mayúsculas o en minúsculas.
Comentarios
El nombre de la instrucción determina el tipo de datos.
Instrucción | Tipo de datos |
---|---|
DefBool | Boolean |
DefByte | Byte |
DefInt | Integer |
DefLng | Long |
DefLngLng | LongLong (válido solo en plataformas de 64 bits) |
DefLngPtr | LongPtr |
DefCur | Moneda |
DefSng | Single |
DefDbl | Double |
DefDec | Decimal (no compatible actualmente) |
DefDate | Date |
DefStr | String |
DefObj | Objeto |
DefVar | Variant |
Por ejemplo, en el siguiente fragmento de programa, Message
es una variable de cadena.
DefStr A-Q
. . .
Message = "Out of stack space."
Una instrucción de tipoDef afecta solamente al módulo donde se usa. Por ejemplo, una instrucción DefInt en un módulo afecta solo al tipo de datos predeterminado de variables, argumentos transferidos a procedimientos y al tipo devuelto de los procedimientos Function y Property Get declarados en dicho módulo; el tipo de datos predeterminado de variables, argumentos y tipos devueltos en otros módulos queda inalterado. Si no se declara explícitamente con una instrucción de tipoDef, el tipo de datos predeterminado para todas las variables, los argumentos, los procedimientos Function y los procedimientos Property Get es Variant.
Cuando se especifica un intervalo de letras, normalmente define el tipo de datos para las variables que comienzan con letras en los primeros 128 caracteres del conjunto de caracteres. Sin embargo, al especificar el intervalo de letras A–Z, se establece el valor predeterminado en el tipo de datos especificado para todas las variables, incluidas las variables que comienzan por caracteres internacionales de la parte extendida del conjunto de caracteres (128-255).
Una vez especificado el intervalo A-Z, no se puede volver a definir ningún subrange de variables mediante instrucciones de tipoDef. Una vez especificado un intervalo, si se incluye una letra definida anteriormente en otra instrucción de tipoDef, se produce un error. Sin embargo, puede especificar explícitamente el tipo de datos de cualquier variable, definida o no, mediante una instrucción Dim con una cláusula Astype .
Por ejemplo, puede usar el código siguiente en el nivel de módulo para definir una variable como Double aunque el tipo de datos predeterminado sea Integer.
DefInt A-Z
Dim TaxRate As Double
Las instrucciones de tipoDef no afectan a los elementos de tipos definidos por el usuario puesto que los elementos se pueden declarar explícitamente.
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.