VARIABLES. DEFINICION Y ENTORNO
Basic, desde siempre, al contrario de otros sistemas de programación, no exigió la definición previa de una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato.
En programación, las variables son estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud:
Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.
Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución.
Las variables pueden ser intercambiadas entre rutinas, por valor y por referencia:
Por valor.- Se copia el valor (el dato) de la variable en la zona de la pila de llamadas —de ámbito local— que corresponde a la nueva subrutina llamada. Por tanto, esta subrutina obtiene dicho valor pero no puede modificar la variable original. Esto significa que si la variable sufre alteraciones dentro de esta rutina, para poder acceder a dichas modificaciones al finalizar, deberá devolver el nuevo valor de la misma. Si no se realiza esta operación, el valor de la variable será exactamente el mismo que tenía antes de pasar por la función.
Por referencia.- No se pasa el valor directamente de la variable, si no una referencia o puntero a la misma —que contiene la dirección de la zona de memoria donde se aloja el contenido—, de tal modo que se opera directamente sobre la zona de memoria que la contiene, lo cual implica que las modificaciones que sufra serán accesibles a posteriori.
TIPOS DE VARIABLES
TIPO
COMENTARIO
BOOLEAN
Sólo admite 2 valores TRUE o FALSE
BYTE
admite valores entre 0 y 255
INTEGER
admite valores entre -32768 y 32767
LONG
admite valores entre -2.147.483.648 y 2.147.483.647
SINGLE
admite valores decimales con precisión simple
DOUBLE
admite valores decimales de doble precisión
CURRENCY
válido para valores de tipo moneda
STRING
cadenas de caracteres
DATE
fechas, permite operar con ellas
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).
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 locala 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:
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:
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:
Alcance de las Variables
El alcance de una variable define en qué partes del código son reconocidas. Cuando declara una variable en un procedimiento, sólo el código de dicho procedimiento puede tener acceso o modificar el valor de la variable; tiene un alcance local al procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance más general, como aquella cuyo valor está disponible para todos los procedimientos del mismo módulo o incluso para todos los procedimientos de toda la aplicación. Visual Basic le permite especificar el alcance de una variable cuando la declara.
Ámbito de las variables
Cuando es declarada una variable también se define su ámbito, el ámbito de una variable es la región de código en la cual la variable se referencia directamente. Existen dos tipos de ámbitos de las variables:
Local, es una variable declarada dentro de un procedimiento y se destruye cuando el procedimiento termina de ejecutarse.
eModular, es una variable declarada a nivel módulo fuera de cualquier procedimiento y son declaradas en la parte superior del Editor de Código arriba del primer procedimiento, este espacio es llamado Sección de Declaraciones Generales (General Declaration Section).
Basic, desde siempre, al contrario de otros sistemas de programación, no exigió la definición previa de una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato.
En programación, las variables son estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud:
Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.
Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución.
Las variables pueden ser intercambiadas entre rutinas, por valor y por referencia:
Por valor.- Se copia el valor (el dato) de la variable en la zona de la pila de llamadas —de ámbito local— que corresponde a la nueva subrutina llamada. Por tanto, esta subrutina obtiene dicho valor pero no puede modificar la variable original. Esto significa que si la variable sufre alteraciones dentro de esta rutina, para poder acceder a dichas modificaciones al finalizar, deberá devolver el nuevo valor de la misma. Si no se realiza esta operación, el valor de la variable será exactamente el mismo que tenía antes de pasar por la función.
Por referencia.- No se pasa el valor directamente de la variable, si no una referencia o puntero a la misma —que contiene la dirección de la zona de memoria donde se aloja el contenido—, de tal modo que se opera directamente sobre la zona de memoria que la contiene, lo cual implica que las modificaciones que sufra serán accesibles a posteriori.
TIPOS DE VARIABLES
TIPO
COMENTARIO
BOOLEAN
Sólo admite 2 valores TRUE o FALSE
BYTE
admite valores entre 0 y 255
INTEGER
admite valores entre -32768 y 32767
LONG
admite valores entre -2.147.483.648 y 2.147.483.647
SINGLE
admite valores decimales con precisión simple
DOUBLE
admite valores decimales de doble precisión
CURRENCY
válido para valores de tipo moneda
STRING
cadenas de caracteres
DATE
fechas, permite operar con ellas
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).
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 locala 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:
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:
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:
Alcance de las Variables
El alcance de una variable define en qué partes del código son reconocidas. Cuando declara una variable en un procedimiento, sólo el código de dicho procedimiento puede tener acceso o modificar el valor de la variable; tiene un alcance local al procedimiento. A veces, sin embargo, se necesita utilizar una variable con un alcance más general, como aquella cuyo valor está disponible para todos los procedimientos del mismo módulo o incluso para todos los procedimientos de toda la aplicación. Visual Basic le permite especificar el alcance de una variable cuando la declara.
Ámbito de las variables
Cuando es declarada una variable también se define su ámbito, el ámbito de una variable es la región de código en la cual la variable se referencia directamente. Existen dos tipos de ámbitos de las variables:
Local, es una variable declarada dentro de un procedimiento y se destruye cuando el procedimiento termina de ejecutarse.
eModular, es una variable declarada a nivel módulo fuera de cualquier procedimiento y son declaradas en la parte superior del Editor de Código arriba del primer procedimiento, este espacio es llamado Sección de Declaraciones Generales (General Declaration Section).