Un tipo de dato determina la naturaleza del dominio de valores que puede tomar una variable, las operaciones en que puede participar y el espacio de memoria que necesita. La tabla siguiente muestra los tipos de datos, incluyendo el tamaño de almacenamiento y el intervalo.
Tipo de Dato |
Tamaño de Almacenamiento |
Rango |
Byte |
1 byte |
0 a 255 |
Boolean |
2 bytes |
True o False |
Integer |
2 bytes |
-32.768 a 32.767 |
Long (entero largo) |
4 bytes |
-2.147.483.648 a 2.147.483.647 |
Single (coma flotante/ precisión simple) |
4 bytes |
-3,402823E38 a -1,401298E-45 para valores negativos; 1,401298E- 45 a 3,402823E38 para valores positivos |
Double (coma flotante/ precisión doble) |
8 bytes |
-1,79769313486232E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E- 324 a 1,79769313486232E308 para valores positivos |
Currency (entero a escala) |
8 bytes |
-922.337.203.685.477,5808 a 922.337.203.685.477,5807
|
Decimal |
14 bytes |
+/- 79.228.162.514.264.337.593.543.950.335 sin punto decimal; +/- 7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal; el número más pequeño distinto de cero es +/- 0,000000000000000000000000001 |
Date |
8 bytes |
1 de enero de 100 a 31 de Diciembre de 9999 |
Object |
4 bytes |
Cualquier referencia a tipo Object |
String (longitud variable) |
10 bytes + longitud de la cadena |
Desde 0 a 2.000 millones |
String (longitud fija) |
Longitud de la cadena |
Desde 1 a 65.400 aproximadamente |
Variant (con números) |
16 bytes |
Cualquier valor numérico hasta el intervalo de un tipo Double |
Variant (con caracteres) |
22 bytes + longitud de la cadena |
El mismo intervalo para un tipo String de longitud variable.
|
Definido por el usuario (utilizando Type) |
Número requerido por los elementos |
El intervalo de cada elemento es el mismo que el intervalo de su tipo de datos |
Nota: Las matrices de cualquier tipo de datos requieren 20 bytes de memoria más cuatro bytes para cada dimensión de matriz, más el número de bytes que ocupan los propios datos. Por ejemplo, los datos de una matriz unidimensional que constan de cuatro elementos de datos tipo Integer de dos bytes cada uno, ocupan ocho bytes. Los ocho bytes que requieren los datos más los 24 bytes necesarios para la matriz suman un requisito total de memoria de 32 bytes para dicha matriz. Un tipo Variant que contiene una matriz requiere 12 bytes más que la matriz por sí sola.
Las variables se utilizan para almacenar valores temporalmente durante la ejecución de una aplicación. Las variables tienen un nombre (la palabra que utiliza para referirse al valor que contiene la variable) y un tipo de dato (que determina la clase de dato que la variable puede almacenar).
Almacenamiento y recuperación de datos en variables
Utilice una sentencia de asignación para realizar cálculos y asignar el resultado a una variable:
ManzanaVendidas = 10 ‘ Se pasa el valor 10 a la variable
ManzanasVendidas = ManzanasVendidas + 1
Observe que el signo igual del ejemplo es un operador de asignación, no un operador de igualdad; el valor 10 se asigna a la variable ManzanasVendidas.
Declaración de Variables
Declarar una variable es decirle al programa algo de antemano. Se declara una variable mediante la instrucción Dim, proporcionando un nombre a la variable, según la siguiente sintaxis:
Dim nombre-variable [ As tipo]
Las variables que se declaran en un procedimiento mediante la sentencia Dim sólo existen mientras se ejecuta el procedimiento. Cuando termina el procedimiento, desaparece el valor de la variable. Además, el valor de una variable de un procedimiento es local a dicho procedimiento; es decir, no puede tener acceso a una variable de un procedimiento desde otro procedimiento. Estas características le permiten utilizar los mismos nombres de variables en distintos procedimientos sin preocuparse por posibles conflictos o modificaciones accidentales.
El nombre de una variable debe cumplir con los siguientes requisitos:
• Debe comenzar con una letra.
• No puede incluir un punto o un carácter de declaración de tipo ($,&,!,%,#,@).
• No debe exceder de 255 caracteres.
• Debe ser única en el mismo alcance, que es el intervalo desde el que se puede hacer referencia a la variable: un procedimiento, formulario, etc.
La cláusula opcional As tipo de la sentencia Dim le permite definir el tipo de dato o de objeto de la variable que va a declarar. Los tipos de datos definen el tipo de información que almacena la variable. Algunos ejemplos de tipos de datos son String, Integer y Currency. Las variables también pueden contener objetos de Visual Basic u otras aplicaciones. Algunos ejemplos de tipos de objeto de Visual Basic, o clases, son Object, Form1 y TextBox.
Hay otras formas de declarar variables:
• Declarar una variable en la sección Declaraciones de un módulo de formulario, estándar o de clase, en vez de un procedimiento, hace que la variable esté disponible para todos los procedimientos del módulo.
• Declarar una variable mediante la palabra clave Public hace que esté accesible para toda la aplicación.
• Declarar una variable local mediante la palabra clave Static conserva su valor aunque termine el procedimiento.
Declaración Implícita
No tiene por qué declarar una variable antes de utilizarla. Por ejemplo, podría escribir una función donde no hiciera falta declarar TempVal antes de utilizarla:
Function Raíz (num)
TempVal = Abs (num)
Raíz = Sqr(TempVal)
End Function
Visual Basic crea automáticamente una variable con ese nombre, que puede utilizar como si la hubiera declarado explícitamente. Aunque es cómodo, puede provocar errores sutiles en el código si se equivoca de nombre de variable. Por ejemplo, suponga que ha escrito esta función:
Function Raíz (num)
TempVal = Abs (num)
Raíz = Sqr (TemVal)
End Function
A primera vista, parece igual. Pero como se ha escrito erróneamente la variable TempVal en la tercera línea, la función devolverá siempre cero. Cuando Visual Basic encuentra un nombre nuevo, no puede averiguar si realmente desea declarar una variable nueva o simplemente ha escrito de forma errónea una variable existente, por lo que crea una variable nueva con ese nombre.
Declaración Explícita
Para evitar problemas al equivocarse de nombre en las variables, puede configurar Visual Basic para que le avise siempre que encuentre un nombre que no se haya declarado explícitamente como una variable.
Para declarar variables de forma explícita:
• Incluya esta sentencia en la sección Declaraciones Generales del módulo de clase, de formulario o estándar:
Option Explicit
- o bien -
En el menú Herramientas, elija Opciones , haga clic en la ficha Editor y active la opción Declaración de variables requerida. Esto inserta automáticamente la sentencia Option Explicit en los módulos nuevos, pero no en los ya creados, por lo que tendrá que agregar manualmente Option Explicit a los módulos existentes en el proyecto.
Si hubiera tenido efecto dicha instrucción en el módulo de formulario o módulo estándar que contiene la función Raíz, Visual Basic habría reconocido TempVal y TemVal como variables no declaradas y habría generado errores para ambas. Debería, por tanto, declara explícitamente TempVal:
Function Raíz (num)
Dim TempVal
TempVal = Abs (num)
Raíz = Sqr (TemVal)
End Fuction
Nota: No puede declarar variables públicas en un procedimiento, sólo en la sección Declaraciones Generales de un módulo.
Declarar todas las variables ahorra tiempo de programación porque reduce el número de errores debidos a nombres de variables errados (por ejemplo, aNombreUsuarioTmp frente a sNombreUsuarioTmp frente a sNombreUsuarioTemp). En la ficha Editor del cuadro de diálogo Opciones , active la opción Declaración de variables requerida. La instrucción Option Explicit requiere que declare todas las variables del programa de Visual Basic.
Las variables deben llevar un prefijo para indicar su tipo de datos. Opcionalmente, y en especial para programas largos, el prefijo se puede ampliar para indicar el alcance de la variable.
Tipos de datos de variables
Use los siguientes prefijos para indicar el tipo de datos de una variable.
Tipo de datos |
Prefijo |
Ejemplo |
Boolean | bln |
blnEncontrado |
Byte | byt |
bytDatosImagen |
ObjetoCollection | col |
colWidgets |
Currency | cur |
curIngresos |
Date (Time) | dtm |
dtmInicio |
Double | dbl |
dblTolerancia |
Error | err |
errNúmDeOrden |
Integer | int |
intCantidad |
Long | lng |
lngDistancia |
Object | obj |
objActivo |
Single | sng |
sngMedia |
String | str |
strNombreF |
Definido por el usuario | udt |
udtEmpleado |
Variant | vnt |
vntCheckSum |
Nombres descriptivos de variables y procedimientos
El cuerpo de un nombre de variable o procedimiento se debe escribir en mayúsculas y minúsculas y debe tener la longitud necesaria para describir su funcionalidad. Además, los nombres de funciones deben empezar con un verbo, como IniciarNombreMatriz o CerrarDiálogo.
Para nombres que se usen con frecuencia o para términos largos, se recomienda usar abreviaturas estándar para que los nombres tengan una longitud razonable. En general, los nombres de variables con más de 32 caracteres pueden ser difíciles de leer en pantalla VGA.
Cuando se usen abreviaturas, hay que asegurarse de que sean coherentes en toda la aplicación. Alterar aleatoriamente entre Cnt y Contar dentro de un proyecto provoca una confusión innecesaria.
^ Exponenciación
* Multiplicación
/ División
División entera
Mod Residuo entero (Ejm: A Mod B)
+ Suma
- Resta
& Concatenación de cadenas
= Igual
<> Distinto
> Menor que
<= Menor o igual
>= Mayor o igual
Like Compara dos cadenas
* Cero o más caracteres (Ejm: cad Like “ma*”)
? Cualquier carácter
# Cualquier dígito (0-9)
[lista] cualquier carácter en lista
[¡lista] cualquier carácter que no esta en lista
Is Usado para comparar dos variables de referencia a objetos
And “Y” lógico
Or “O” lógico
Xor “O” Exclusivo
Not NegaciónA menudo verá que el código contiene valores constantes que reaparecen una y otra vez. O puede que el código dependa de ciertos números que resulten difíciles de recordar (números que, por sí mismos, no tienen un significado obvio).
En estos casos, puede mejorar mucho la legibilidad del código y facilitar su mantenimiento si utiliza constantes. Una constante es un nombre significativo que sustituye a un número o una cadena que no varía. Aunque una constante recuerda ligeramente a una variable, no puede modificar una constante o asignarle un valor nuevo como ocurre con una variable. Hay dos orígenes para las constantes:
• Constantes intrínsecas o definidas por el sistema proporcionadas por Visual Basic.
• Las constantes simbólicas o definidas por el usuario se declaran mediante la instrucción Const.
Creación de sus propias constantes
La sintaxis para declarar una constante es la siguiente:
[Public|Private] Const nombre_constante [ As tipo] = expresión
El argumento nombre_constante es un nombre simbólico válido (las reglas son las mismas que para crear nombres de variable) y expresión está compuesta por constantes y operadores de cadena o numéricos; sin embargo, no puede utilizar llamadas a funciones en expresión . Una instrucción Const puede representar una cantidad matemática o de fecha y hora:
Const conPi = 3.14159265358979
Public Const conMaxPlanetas As Integer = 9
Const conFechaSalida = #1/1/95#
Se puede utilizar también la instrucción Const para definir constantes de cadena:
Public Const conVersion = “ 07.10.A”
Const conNombreClave = “Enigma”
Puede colocar más de una declaración de constante en una única línea si las separa con comas:
Public Const conPi=3.14, conMaxPlanetas=9, conPobMundial=6E+09
A menudo, la expresión del lado derecho del signo igual ( = ) es un número o cadena literal, pero también puede ser una expresión que dé como resultado un número o una cadena (aunque la expresión no puede contener llamadas a funciones). Puede incluso definir constantes en términos de constantes previamente definidas:
Const conPi2 = conPi * 2
Una vez que defina las constantes, puede colocarlas en el código para hacerlo más legible. Por ejemplo:
Static SistemaSolar (1 To conMaxPlanetas)
If numPersonas > conPopMundial Then Exit Sub
Alcance de las constantes definidas por el usuario
Una instrucción Const tiene igual alcance que una declaración de variable y se le aplican las mismas reglas:
• Para crear una constante que sólo exista en un procedimiento, declárela dentro del procedimiento.
• Para crear una constante disponible para todos los procedimientos de un módulo, pero no para el código que está fuera del módulo, declárela en la sección Declaraciones Generales del módulo.
• Para crear una constante disponible en toda la aplicación, declare la constante en la sección Declaraciones Generales de un módulo estándar y coloque delante de Const la palabra clave Public. No se pueden declarar las constantes públicas en un módulo de clase o de formulario.
Evitar referencias circulares
Como es posible definir constantes en términos de otras constantes, deberá tener cuidado para no establecer un ciclo o referencia circular entre dos o más constantes. Se produce un ciclo cuando se tienen dos o más constantes públicas, cada una de las cuales está definida en función de la otra. Por ejemplo:
'En el Módulo 1:
Public Const conA = conB * 2 ' Disponible en toda la aplicación
'En el Módulo 2:
Public Const conB = conA / 2 ' Disponible en toda la aplicación
Si se produce un ciclo, Visual Basic generará un error cuando intente ejecutar la aplicación. No puede ejecutar el código hasta que resuelva la referencia circular. Para evitar la creación de un ciclo, restrinja todas las constantes públicas a un único módulo o, al menos, al menor número posible de módulos.
OBJETOS: 2 cajas de texto, 4 etiquetas, 6 botones
CODIGO:
Private Sub SALIR_Click()
End
End Sub
Private Sub SUMA_Click()
Dim Primero, Segundo 'declaración de variables
Primero = Val(Text1.Text) 'conversión de números
Segundo = Val(Text2.Text)
'Si se pulsa el primer botón, suma los números
Label1.Caption = Primero + Segundo
end Sub
Private Sub RESTA_Click()
Dim Primero, Segundo 'declaración de variables
Primero = Val(Text1.Text) 'conversión de números
Segundo = Val(Text2.Text)
'Si se pulsa el primer botón, RESTA los números
Label1.Caption = Primero - Segundo
End Sub
Private Sub MULTIPLICA_Click()
Dim Primero, Segundo 'declaración de variables
Primero = Val(Text1.Text) 'conversión de números
Segundo = Val(Text2.Text)
'Si se pulsa el primer botón, MULTIPLICA los números
Label1.Caption = Primero * Segundo
End Sub
Private Sub DIVIDE_Click()
Dim Primero, Segundo 'declaración de variables
Primero = Val(Text1.Text) 'conversión de números
Segundo = Val(Text2.Text)
'Si se pulsa el primer botón, DIVIDE los números
Label1.Caption = Primero / Segundo
End Sub
Private Sub BORRA_Click()
Text1.Text = ""
Text2.Text = ""
Label1.Caption = ""
End Sub