Las variables almacenan valores que pueden cambiar durante la ejecución de la aplicación. Cuando se utiliza una variable en Visual Basic la memoria es reservada para albergar a la variable de esta manera la aplicación puede acceder y manipular el valor que contiene la variable.
Existen tipos de variables para almacenar diferentes tipos de datos.
La diferencia entre una variable y una constante es que el valor que contiene la constante permanece fijo y no puede ser cambiado en tiempo de ejecución, pues los valores de las constantes siempre se establecen en tiempo de diseño.
Sintaxis para declarar una constante:
[Public] [Private] Const nombreConstante [As type] = valor
En Visual Basic se utilizan las variables para almacenar valores temporalmente durante la ejecución de una aplicación.
Una variable se compone de el nombre de la variable que es utilizado para referirse al valor que contiene la variable y de un tipo de dato el cual determina el tipo de dato que la variable puede almacenar.
El nombre de una variable debe seguir las siguientes reglas:
- Debe comenzar con un caracter alfabético.
- No debe contener espacios.
- No debe contener símbolos no permitidos como ., %, &, !, #, @, $.
- Debe ser un nombre único dentro de un mismo ámbito.
Convenciones en el Nombre de las Variables
A manera de buenas prácticas de programación deben especificarse los estándares de programación a seguir, por lo que se pueden establecer convenciones a seguir para el nombre de las variables:
Objeto | Prefijo |
Boolean | bln |
Byte | byt |
Currency | cur |
Date | dt |
Double | dbl |
Integer | int |
Long | lng |
Object | Estándares |
Single | sng |
String | str |
Variant | var |
Las variables Visual Basic pueden almacenar diferentes tipos de datos:
- Texto:
String
de longitud variablepor ejemplo:
Dim sNombreCompleto as String
String
de longitud fijapor ejemplo:
Dim sNombreCompleto as String * 50
sNombreCompleto
contendra siempre 50 caracteres (los caracteres faltantes completan con espacios en blanco)
- Números:
Integer
Long
Single
Double
- Boolean
- Otros:
Variant
Object
Currency
Date
A direncia de otros lenguajes como Lenguaje C, algo importante y que es necesario tenerlo en cuenta es que Visual Basic no requiere especificar explicitamente un tipo de dato al declarar una variable sólo es necesario declarar la variable de manera generica y al ser generica por default las variables Visual Basic son de tipo Variant
.
Variant, es un tipo de dato que puede almacenar cualquier tipo de valor, inluyendo, texto, números, objetos y null
. Visual Basic determina y convierte los valores Variant
.
Empty
es un valor especial distinto de 0, para verificar si una variable contiene el valor Empty
utilice la función IsEmpty(nombreVariable)
.
Por ejemplo cualquier variable declarada sin referencia con un tipo de dato asume por default el tipo de dato Variant
y el contenido por default de Variant
es Empty
antes de asignarle un valor:
Dim x
Private Sub Command4_Click()
MsgBox IsEmpty(x)
End Sub
Lo anterior regresa True
Es posible asignar el valor Empty
a una variable que soporte este valor.s
Null
es un valor especial. Puede indicar datos desconocidos o faltantes, por ejemplo en bases de datos. Es posible utilizar la funcion IsNull(nombreVariable)
para determinar si contiene el valor Null
.
Dim s As String
Private Sub cmdNull_Click()
MsgBox IsNull(s)
End Sub
Lo anterior regresa False
Dim : Declaración de Variables
Declaración implicita, son aquellas variables que no son declaradas pero si Visual Basic encuentra una declaración de variable le asigna por default el tipo Variant
con el valor vacío (""
). Una declaración de este tipo a veces es conveniente pero límita el control sobre las variables.
Declaración explicita, Para declarar una variable explícita se utiliza la sentencia Dim
.
Sintaxis:
Dim nombreVariable [As tipoVariable]
Donde la cláusula As
en la sentencia Dim
permite especificar el tipo de dato cuando la variable es declarada, por ejemplo:
Dim strUserName As String
Dim intUserDept As Integer
Una vez que las variables son creadas con la sentencia Dim
, Visual Basic automáticamente inicializa las de tipo numérico con el valor 0
y cadenas de texto o variant con el valor vacío (""
).
Ya que es posible declarar variables de manera implicita, esto puede causar errores lógicos al escribir incorrectamente el nombre de la variable, por ejemplo, suponga que declara de manera implicita la variable strUserPwd
y después trata de hacer referencia a esta variable pero comete un error al escribir el nombre:
strUserPwd = txtBoxUserPwd.Text
strUserLevel = strUserPdw + "A"
Visual Basic asume que strUserPdw
es una nueva variable implicita, para prevenir esto, es posible que indicar a Visual Basic que todas las variables sean declaradas antes de ser usadas, para ello es necesario escribir la sentencia Option Explicit
en las declaraciones generales de la sección de un módulo.
La sentencia Option Explicit
instruye a Visual Basic para checar el módulo por cualquier variable que no sea declarada explicitamente y si una variable no es declarada un mensaje de error aparece "Variable not defined" para corregir el error.
Se recomienda siempre utilizar la sentencia Option Explicit
.
Para colocar de manera automática la sentencia Option Explicit
al inicio del código de cada módulo, selecccione:
Opción Tools del menú principal » Options » Editor tab » Require Variable Declaration.
Para colocar de manera manual la sentencia Option Explicit
al inicio del código de cada módulo, selecccione de la ventana editora de código:
- Object list box » General
- Procedure list box » Declarations
- Escribir al inicio
Option Explicit
El alcance de una variable se define como el ámbito de acción sobre la cual la variable actua y su comportamiento depende de como se defina.
- Privado, las variables son privadas del procedimiento en el que aparecen.
- Público, No es posible declarar variables públicas dentro de un procedimiento.
Las variables a nivel procedimiento sólo se reconocen el el procedimiento en el que se han declarado y también reciben el nombre de variables locales declarandolas mediante la palabra reservada Dim
es decir que existen mientras se ejecuta el procedimiento o Static
que existen mientras se ejecuta la aplicación.
- Privado, las variables son privadas del módulo en el que aparecen.
- Público, las variables están disponibles para todos los módulos.
Una variable a nivel módulo está disponible para todos los procedimientos del módulo, pero no está disponible para otros módulos o los procedimientos de otros módulos.
A nivel módulo no existe diferencia entre Private
o Dim
. Se recomienda declararlas como Private
para diferenciarlas o contrastarlas con Public
, haciendo el código más fácil de entender.
Si requerimos que una variable esté disponible para otros módulos se emplea la palabra clave Public
para declarar la variable al inicio del módulo.
Es posible tener varios modulos donde cada módulo tiene un procedimiento con el mismo nombre y a su vez el modulo tiene declarada una variable también con el mismo nombre. En este caso para hacer una referencia correcta se escribe el nombre del módulo seguido de un punto y el nombre de la variable:
mod1.AsignaNombre
mod1.sNombre
mod2.AsignaNombre
mod2.sNombre
mod3.AsignaNombre
mod3.sNombre
NOTA: Cuando se tienen variables con un mismo nombre pero distinto alcance, las variables más locales ocultan a las variables menos locales.
Si en el evento Load
de una forma escribe MsgBox Top
se hace referencia a la propiedad Top
de la forma (NombreForma.Top
).
Para preservar el valor de una variable local se declara como Static
:
Private Sub cmdIncrementa_Click()
Cuenta
End Sub
Sub Cuenta()
Static Contador As Integer
Contador = Contador + 1
MsgBox Contador
End Sub
Declarar una constante (Cons
) significa que el valor que contiene nunca cambiara mientras se ejecute la aplicación.
Poe ejemplo Visual Basic define varias constantes como valores predefinidos como es el caso de los colores: vbRed, vbBlue, vbBlack, etc.
Const PI = 3.141592
Const YEAR as Integer = 1971
Es posible definir más de una constante en una sola línea, para ello se utiliza como separador el signo coma (;
)
Const PI = 3.141592, YEAR as Integer = 1971
0 comentarios:
Publicar un comentario