Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso. Para obtener más información o bien conocer cómo cambiar la configuración lea nuestra Política de cookies

Declaración de variables

Declaración implícita de variables

OpenOffice Basic admite la declaración implícita de variables. Esta afirmación significa que se permite la creación de variables simplemente incluyéndolas en el código.


Por ejemplo:


Sub Main
  Variable = 25
  MsgBox Variable
End Sub


Este código crea la variable de nombre Variable y le asigna el valor 25; posteriormente es utilizado por el comando MsgBox, mostrando una ventana con el número 25.


OpenOffice.Basic.Macros.014.png


Esta práctica no es aconsejable, pues puede dar como resultado la creación de nuevas variables por un simple error tipográfico, en lugar de generar un error detectable, y en consecuencia, resultará más difícil encontrar posibles errores en el código.


Por ejemplo:


Sub Main
  Variable = 25
  MsgBox Variabe
End Sub


Este código crea la variable de nombre Variable y le asigna el valor 25; posteriormente se crea una nueva variable denominada Variabe, que se ha escrito con un simple error tipográfico. Ésta es utilizada por el comando MsgBox, mostrando una ventana vacía, pues la nueva variable no contiene ningún valor.


OpenOffice.Basic.Macros.015.png


Declaración explícita de variables

Para evitar los errores debidos a la declaración implícita de variables, OpenOffice Basic proporciona una instrucción que se debe insertar al inicio de cada módulo, forzando con ello la declaración explícita de las variables.


Esta instrucción es:

Option Explicit


Tras incluir esta instrucción al inicio de un módulo, las variables deberán ser declaradas con una instrucción Dim. Cualquier variable no declarada será identificada por un error como el siguiente:


OpenOffice.Basic.Macros.013.png


Mediante este sencillo procedimiento evitaremos errores en nuestro código y facilitaremos la localización de los mismos.


Las variables se pueden declarar de forma explícita de los siguientes modos:


Las variables se declaran con la sentencia

 Dim <NombreDeVariable>[ As <TipoDeVariable>] 


Si no se define el tipo de variable, se asigna el tipo Variant.


Dim Textos as String
Dim NumerosEnteros as Integer
Dim EnterosGrandes as Long
Dim NumerosConDecimales as Single
Dim NumerosGrandesConDecimales as Double
Dim Fecha as Date
Dim Hora as Date
Dim Verdadero as Boolean
Dim Importe as Currency
Dim miObjeto as Object
Dim CualquierCosa as Variant
Dim CualquierOtraCosa


Usar sufijos para declarar el tipo de variable

También se pueden declarar y definir su tipo utilizando los sufijos que se relacionan en la tabla de tipos de variables.


Dim Textos$
Dim NumerosEnteros%
Dim EnterosGrandes&
Dim NumerosConDecimales!
Dim NumerosGrandesConDecimales#
Dim Importe@


Se pueden declarar varias variables en una sóla línea tras una única sentencia Dim siguiendo este modelo:


Dim Fecha as Date, Texto as String, Contador as Integer
Dim Precio as Currency, Descuento as single
Dim CualquierCosa, Importe as Currency, Total as Currency


La variable CualquierCosa del ejemplo será declarada como Variant, al no especificar el tipo de variable en la declaración.


Un tercer modo de declarar el tipo de variable lo puedes encontrar en Directiva Def



Declaración de variables a nivel de módulo

Podemos declarar variables a nivel de módulo, declarando éstas después de las opciones de compilador y antes de cualquier función o subrutina.


REM  *****  BASIC  *****
Option Explicit
 
Dim Fecha as date, Hora as Date, Empresa as string
Dim Guardar as boolean
 
Sub MiSubrutina() as string
 
 
End Sub


Cualquier variable declarada a nivel de módulo será visible por todas las funciones y subrutinas de ese módulo. Solo será visible en ese módulo (salvo que se declare como pública).



Declaración de variables a nivel de subrutina o función

Podemos declarar variables a nivel de subrutina o función, declarando éstas después de la declaración de la subrutina o función, y antes de su finalización con End Sub o End Function, según corresponda, y siempre antes de utilizar la variable, por lo que es recomendable situarlas al principio, justo tras la declaración de la subrutina o función.


REM  *****  BASIC  *****
Option Explicit
 
Dim Fecha as date, Hora as Date, Empresa as string
Dim Guardar as boolean
 
Sub MiSubrutina() as string
    Dim miFecha as date, miHora as date, Guardar as boolean
 
End Sub


Cualquier variable declarada a nivel de función o subrutina será visible sólo dentro de la misma (salvo que se declare como pública). Si el nombre coincide con una variable declarada a nivel de módulo, o pública, la variable de la función o subrutina eclipsará a las anteriores, por lo que no podremos acceder a ellas.



Declaración de variables como argumento

Al declarar los argumentos de una subrutina o función, estamos declarando variables, que podemos tipificar.


REM  *****  BASIC  *****
Option Explicit
 
Dim Fecha as date, Hora as Date, Empresa as string
Dim Guardar as boolean
 
Sub MiSubrutina( Importe as Currency, Descuento as single ) as string
    Dim miFecha as date, miHora as date, Guardar as boolean
 
End Sub


Las variables argumento se comportan exactamente igual que las variables declaradas a nivel de función o subrutina: serán visibles sólo dentro de la misma. Si el nombre coincide con una variable declarada a nivel de módulo, o pública, la variable argumento eclipsará a las anteriores, por lo que no podremos acceder a ellas. No pueden coexistir variables de argumento y variables a nivel de función o subrutina con el mismo nombre.

Modificada el 28 jul 2013 21:12.   Visitas: 7748