Sie sind auf Seite 1von 22

DECLARACION DE VARIABLES2-2015

Instruccin Dim (Visual Basic)


Visual Studio 2015
Otras versiones

Declara y asigna espacio de almacenamiento para una o varias variables.

Sintaxis
[ <attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]]
[ ReadOnly ]
Dim [ WithEvents ] variablelist

Elementos
Trmino

Definicin

attributelist

Opcional.Vea la Lista de atributos.

Opcional.Puede ser una de las siguientes:

accessmodifier

Public

Protected

Friend

Private

Protected Friend

Vea Niveles de acceso en Visual Basic.

Shared

Opcional.Vea Shared.

Shadows

Opcional.Vea Shadows.

Static

Opcional.Vea Static.

ReadOnly

Opcional.Vea ReadOnly.

WithEvents

Opcional.Especifica que stas son variables de objeto que hacen referencia a


instancias de una clase que puede provocar eventos.Vea WithEvents.

variablelist

Requerido.Lista de variables que se declara en esta instruccin.


variable [ , variable ... ]
Cada variable tiene la sintaxis y las partes siguientes:
variablename [ ( [ boundslist ] ) ] [ As [ New ] datatype
[ With { [ .propertyname = propinitializer [ , ... ] ] } ] ] [ = initializer ]
Parte

Descripcin

variablename

Requerido.Nombre de la variable.Vea Nombres de elementos


declarados (Visual Basic).

boundslist

Opcional.Lista de lmites de cada dimensin de una variable de


matriz.

New

Opcional.Crea una nueva instancia de la clase cuando se


ejecuta la instruccin Dim.

datatype

Opcional.Tipo de datos de la variable.

With

Opcional.Incluye la lista de inicializadores de objeto.

propertyname

Opcional.Nombre de una propiedad en la clase de la que se


est creando una instancia.

propinitializer

Se requiere despus de propertyname =.Expresin que se


evala y se asigna al nombre de propiedad.

initializer

Opcional si no se especifica New.Expresin que se evala y se


asigna a la variable cuando se crea.

Comentarios
El compilador de Visual Basic utiliza la instruccin Dim para determinar el tipo de datos de la
variable y otra informacin, como por ejemplo qu cdigo puede obtener acceso a la
variable.En el ejemplo siguiente se declara una variable que contiene un valor Integer.
VB

Dim numberOfStudents As Integer

Puede especificar cualquier tipo de datos o el nombre de una enumeracin, estructura, clase o
interfaz.
VB
Dim finished As Boolean
Dim monitorBox As System.Windows.Forms.Form

En un tipo de referencia, la palabra clave New se utiliza para crear una nueva instancia de la
clase o estructura especificada por el tipo de dato.Si utiliza New, no utilice una expresin de
inicializador.En su lugar, si son necesarios, proporcione argumentos al constructor de la clase a
partir de la que est creando la variable.
VB
Dim bottomLabel As New System.Windows.Forms.Label

Puede declarar una variable en un procedimiento, bloque, clase, estructura o mdulo.No puede
declarar una variable en un archivo de cdigo fuente, espacio de nombres o interfaz.Para
obtener ms informacin, vea Contextos de declaracin y niveles de acceso predeterminados
(Visual Basic).

Una variable que se declara en el nivel de mdulo, fuera de cualquier procedimiento, es una
variable miembro o campo.Las variables miembro estn en mbito a lo largo de su clase,
estructura o mdulo.Una variable que se declara dentro de un procedimiento es una variable
local.Las variables locales slo estn en mbito dentro de su procedimiento o bloque.
Los siguientes modificadores de acceso se utilizan para declarar variables fuera de un
procedimiento: PublicProtected, Friend, Protected Friend y Private.Para obtener ms
informacin, vea Niveles de acceso en Visual Basic.
La palabra clave Dim es opcional y se suele omitir si especifica cualquiera de los siguientes
modificadores: PublicProtected, Friend, Protected Friend, Private, Shared, Shadows,
Static, ReadOnly o WithEvents.
VB
Public maximumAllowed As Double
Protected Friend currentUserName As String
Private salary As Decimal
Static runningTotal As Integer

Si Option Explicit est activado (valor predeterminado), el compilador requiere una


declaracin para cada variable que utiliza.Para obtener ms informacin, vea Option Explicit
(Instruccin, Visual Basic).

Especifica un valor inicial


Puede asignar un valor a una variable cuando se crea.En un tipo de valor, un inicializador se
utiliza para proporcionar una expresin que se va a asignar a la variable.La expresin se debe
evaluar como una constante que se puede calcular en tiempo de compilacin.
VB
Dim quantity As Integer = 10
Dim message As String = "Just started"

Si se especifica un inicializador y no se especifica un tipo de datos en una clusula As, la


inferencia de tipos se utiliza para inferir el tipo de datos del inicializador.En el ejemplo
siguiente, num1 y num2 estn fuertemente tipados como enteros.En la segunda declaracin, la
inferencia de tipos deduce el tipo del valor 3.
VB
' Use explicit typing.
Dim num1 As Integer = 3
' Use local type inference.
Dim num2 = 3

La inferencia de tipos se aplica en el nivel de procedimiento.No se aplica fuera de un


procedimiento en una clase, estructura, mdulo o interfaz.Para obtener ms informacin sobre

la inferencia de tipos, vea Option Infer (instruccin) y Inferencia de tipo de variable local
(Visual Basic).
Para obtener informacin acerca de lo que sucede cuando un tipo de datos o inicializador no se
especifica, consulte Valores y tipos de datos predeterminados ms adelante en este tema.
Puede utilizar un inicializador de objeto para declarar instancias de tipos annimos y con
nombre.El cdigo siguiente crea una instancia de una clase Student y utiliza a un inicializador
de objeto para inicializar las propiedades.
VB
Dim student1 As New Student With {.First = "Michael",
.Last = "Tucker"}

Para obtener ms informacin sobre los inicializadores de objeto, vea Cmo: Declarar un
objeto usando un inicializador de objeto (Visual Basic), Inicializadores de objeto: Tipos con
nombre y annimos (Visual Basic) y Tipos annimos (Visual Basic).

Declarar variables mltiples


Se pueden declarar varias variables en una instruccin de declaracin si se especifica el
nombre de variable de cada una, y se sigue cada nombre de matriz con parntesis.Las
variables mltiples se separan con comas.
VB
Dim lastTime, nextTime, allTimes() As Date

Si declara ms de una variable con una clusula As, no puede proporcionar un inicializador
para ese grupo de variables.
Se pueden especificar tipos de datos diferentes para variables diferentes utilizando una
clusula As independiente para cada variable declarada.Todas las variables toman el tipo de
datos especificado en la primera clusula As que se encuentre despus de su parte
variablename correspondiente.
VB

Dim a, b, c As Single, x, y As Double, i As Integer


' a, b, and c are all Single; x and y are both Double

Matrices
Puede declarar una variable para contener una matriz, que puede almacenar varios
valores.Para especificar que una variable contiene una matriz, incluya un parntesis
inmediatamente despus de variablename.Para obtener ms informacin sobre las matrices,
vea Matrices en Visual Basic.

Se puede especificar el lmite inferior y superior de cada dimensin de una matriz.Para ello,
incluya boundslist dentro de los parntesis.En cada dimensin, boundslist especifica el lmite
superior y, opcionalmente, el lmite inferior.El lmite inferior siempre es cero, tanto si se
especifica como si no.Cada ndice puede variar de cero hasta el valor de su lmite superior.
Las dos instrucciones siguientes son equivalentes.Cada instruccin declara una matriz de 21
elementos Integer.Cuando se tiene acceso a la matriz, el ndice puede variar de 0 a 20.
VB
Dim totals(20) As Integer
Dim totals(0 To 20) As Integer

La instruccin siguiente declara una matriz bidimensional de tipo Double.La matriz tiene 4
filas (3 + 1) de 6 columnas (5 + 1) cada una.Observe que el lmite superior representa el valor
ms alto posible del ndice, no la longitud de la dimensin.La longitud de la dimensin es el
lmite superior ms uno.
VB
Dim matrix2(3, 5) As Double

Una matriz puede tener de 1 a 32 dimensiones.


Todos los lmites de una declaracin de matriz se pueden dejar en blanco.En este caso, la
matriz tiene el nmero de dimensiones que especifica, pero se no se inicializa.Tiene el valor
Nothing hasta que se inicialicen por lo menos algunos de sus elementos.La instruccin Dim
debe especificar los lmites para todas las dimensiones o para ninguna de ellas.
VB

' Declare an array with blank array bounds.


Dim messages() As String
' Initialize the array.
ReDim messages(4)

Si la matriz tiene ms de una dimensin, debe incluir comas entre los parntesis para indicar el
nmero de dimensiones.
VB

Dim oneDimension(), twoDimensions(,), threeDimensions(,,) As Byte

Puede declarar una matriz de longitud cero declarando una de las dimensiones de la matriz
para que sea -1.Un variable que contiene una matriz de longitud cero no tiene el valor
Nothing.Ciertas funciones de Common Language Runtime requieren matrices de longitud
cero.Si se intenta acceder a dicha matriz, se produce una excepcin de tiempo de
ejecucin.Para obtener ms informacin, vea Matrices en Visual Basic.
Puede inicializar los valores de una matriz utilizando un literal de matriz.Para ello, encierre los
valores de inicializacin entre llaves ({}).

VB
Dim longArray() As Long = {0, 1, 2, 3}

En las matrices multidimensionales, la inicializacin de cada dimensin est entre llaves en la


dimensin exterior.Los elementos se especifican en orden de importancia de filas.
VB

Dim twoDimensions(,) As Integer = {{0, 1, 2}, {10, 11, 12}}

Para obtener ms informacin sobre los literales de matriz, vea Matrices en Visual Basic.

Valores y tipos de datos predeterminados


La tabla siguiente describe los resultados de varias combinaciones de especificar el tipo de
datos y el inicializador en una instruccin Dim.
Tipo de datos
especificado?

No

Inicializador
especificado?

No

Ejemplo

Dim qty

Resultado

Si Option strict est desactivado (valor


predeterminado), la variable se establece en
Nothing.
Si Option Strict est activada, se produce un
error en tiempo de compilacin.

Si Option infer est activado (valor


predeterminado), la variable tiene el tipo de
datos de inicializadores.Vea Inferencia de tipo
de variable local (Visual Basic).
No

Si

Dim qty = Si Option Infer y Option Strict estn


5
desactivadas, la variable toma el tipo de datos
de Object.
Si Option Infer est desactivada y Option
Strict est activada, se produce un error en
tiempo de compilacin.

Si

No

Dim qty As La variable se inicializa con el valor


Integer
predeterminado para el tipo de datos.Consulte

la tabla ms adelante en esta seccin.

Si

Si

Si el tipo de datos del inicializador no es


Dim qty As
convertible al tipo de datos especificado, se
Integer = 5
produce un error en tiempo de compilacin.

Si especifica un tipo de datos pero no especifica un inicializador, Visual Basic inicializa la


variable con el valor predeterminado de su tipo de datos.En la tabla siguiente se muestran los
valores de inicializacin predeterminados.
Tipo de datos

Valor predeterminado

Todos los tipos numricos (incluso Byte y SByte) 0

Char

Binario 0

Todas las referencias de tipo (incluidas Object,


String y todas las matrices).

Nothing

Boolean

False

date

12:00 a.m. del 1 de enero del ao 1


(01/01/0001 12:00:00 a.m.)

Cada elemento de una estructura se inicializa como si fuera una variable independiente.Si se
declara la longitud de una matriz pero no se inicializan sus elementos, stos se inicializan
como si fueran una variable independiente.

Vigencia de la variable local esttica


Una variable local Static tiene un perodo de duracin ms largo que el del procedimiento en
el que se declara.Los lmites de la duracin de la variable dependen de dnde se declare el
procedimiento y si es Shared.

Declaracin de
procedimiento

La variable se inicializa

La variable deja de existir

En un mdulo

La primera vez que se llama al


procedimiento

Cuando el programa detiene


la ejecucin

La primera vez que se llama al


En una clase o estructura,
procedimiento en una instancia
el procedimiento es
especfica o en la propia clase o
Shared
estructura

Cuando el programa detiene


la ejecucin

En una clase o estructura, La primera vez que se llama al


el procedimiento no es
procedimiento en una instancia
Shared
especfica

Cuando la instancia se libera


para la recoleccin de
elementos no utilizados

Atributos y modificadores
Slo se pueden aplicar atributos a las variables miembro, no a las variables locales.Un atributo
proporciona informacin a los metadatos del ensamblado, que no son significativos para el
almacenamiento temporal como las variables locales.
En el nivel de mdulo, no se puede utilizar el modificador Static para declarar variables
miembro.En el nivel de procedimiento, no se puede utilizar Shared, Shadows, ReadOnly,
WithEvents ni un modificador de acceso para declarar variables locales.
Puede especificar qu cdigo puede tener acceso a una variable, suministrando un
accessmodifier.Las variables miembro de clase y mdulo (fuera de cualquier procedimiento)
tienen como valor predeterminado el acceso privado y las variables miembro de estructura
tienen como valor predeterminado el acceso pblico.Puede ajustar sus niveles de acceso con
los modificadores de acceso.No puede utilizar modificadores de acceso en variables locales
(dentro de un procedimiento).
Solo se puede especificar WithEvents en variables miembro, no en variables locales dentro de
un procedimiento.Si especifica WithEvents, el tipo de datos de la variable debe ser un tipo de
clase concreto, no Object.No se puede declarar una matriz con WithEvents.Para obtener ms
informacin sobre los eventos, vea Eventos (Visual Basic).
Nota
El cdigo externo a una clase, estructura o mdulo debe calificar el nombre de una variable
miembro con el nombre de esa clase, estructura o mdulo.El cdigo externo a un

procedimiento o bloque no puede hacer referencia a ninguna variable local dentro de ese
procedimiento o bloque.

Liberar recursos administrados


El recolector de elementos no utilizados de .NET Framework dispone de recursos
administrados sin ninguna codificacin adicional en la particin.Sin embargo, puede forzar la
eliminacin de un recurso administrado en lugar de esperar el recolector de elementos no
utilizados.
Si una clase consume un recurso determinado valioso y suficiente (como una conexin de base
de datos o un identificador de archivos), puede que no desee esperar hasta la siguiente
recoleccin de elementos no utilizados para limpiar una instancia de clase que ya no se
utiliza.Una clase puede implementar la interfaz IDisposable para proporcionar una manera de
liberar recursos antes de una recoleccin de elementos no utilizados.Una clase que implementa
expone de esa interfaz un mtodo Dispose que se puede llamar para obligar a los recursos
valiosos que se producirn liberar inmediatamente.
La instruccin Using automatiza el proceso de adquirir un recurso, de ejecutar un conjunto de
instrucciones, y despus de eliminar de recursos.Sin embargo, el recurso debe implementar la
interfaz IDisposable .Para obtener ms informacin, vea Using (Instruccin, Visual Basic).
En el ejemplo siguiente se declaran variables mediante la instruccin Dim con diversas
opciones.
VB
' Declare and initialize a Long variable.
Dim startingAmount As Long = 500
' Declare a variable that refers to a Button object,
' create a Button object, and assign the Button object
' to the variable.
Dim switchButton As New System.Windows.Forms.Button
' Declare a local variable that always retains its value,
' even after its procedure returns to the calling code.
Static totalSales As Double
' Declare a variable that refers to an array.
Dim highTemperature(31) As Integer
' Declare and initialize an array variable that
' holds four Boolean check values.
Dim checkValues() As Boolean = {False, False, True, False}

El ejemplo siguiente muestra los nmeros primos entre 1 y 30.El mbito de las variables
locales se describe en comentarios de cdigo.

VB
Public Sub ListPrimes()
' The sb variable can be accessed only
' within the ListPrimes procedure.
Dim sb As New System.Text.StringBuilder()
' The number variable can be accessed only
' within the For...Next block. A different
' variable with the same name could be declared
' outside of the For...Next block.
For number As Integer = 1 To 30
If CheckIfPrime(number) = True Then
sb.Append(number.ToString & " ")
End If
Next
Debug.WriteLine(sb.ToString)
' Output: 2 3 5 7 11 13 17 19 23 29
End Sub
Private Function CheckIfPrime(ByVal number As Integer) As Boolean
If number < 2 Then
Return False
Else
' The root and highCheck variables can be accessed
' only within the Else block. Different variables
' with the same names could be declared outside of
' the Else block.
Dim root As Double = Math.Sqrt(number)
Dim highCheck As Integer = Convert.ToInt32(Math.Truncate(root))
' The div variable can be accessed only within
' the For...Next block.
For div As Integer = 2 To highCheck
If number Mod div = 0 Then
Return False
End If
Next
Return True
End If
End Function

En el siguiente ejemplo, se declara la variable speedValue en el nivel de clase.La palabra clave


Private se utiliza para declarar la variable.La variable es accesible a travs del cualquier
procedimiento de la clase Car .
VB
' Create a new instance of a Car.
Dim theCar As New Car()
theCar.Accelerate(30)
theCar.Accelerate(20)
theCar.Accelerate(-5)

Debug.WriteLine(theCar.Speed.ToString)
' Output: 45

VB
Public Class Car
' The speedValue variable can be accessed by
' any procedure in the Car class.
Private speedValue As Integer = 0
Public ReadOnly Property Speed() As Integer
Get
Return speedValue
End Get
End Property
Public Sub Accelerate(ByVal speedIncrease As Integer)
speedValue += speedIncrease
End Sub
End Class

Vea tambin
Instruccin Const (Visual Basic)
Instruccin ReDim (Visual Basic)
Option Explicit (Instruccin, Visual Basic)
Option Infer (instruccin)
Option Strict (Instruccin)
Pgina Compilacin, Diseador de proyectos (Visual Basic)
Declaracin de variable en Visual Basic
Matrices en Visual Basic
Inicializadores de objeto: Tipos con nombre y annimos (Visual Basic)
Tipos annimos (Visual Basic)
Inicializadores de objeto: Tipos con nombre y annimos (Visual Basic)
Cmo: Declarar un objeto usando un inicializador de objeto (Visual Basic)
Inferencia de tipo de variable local (Visual Basic)

Declaracin de variable en Visual Basic


Visual Studio 2015
Otras versiones

Una variable se declara para especificar su nombre y sus caractersticas.La instruccin de


declaracin para variables es Instruccin Dim (Visual Basic).Su ubicacin y contenido
determinan las caractersticas de la variable.

Para las reglas de denominacin de variables y consideraciones, consulte Nombres de


elementos declarados (Visual Basic).

Niveles de declaracin
Valor local y variables miembros
Una variable local es aquella que se declara dentro de un procedimiento.Una variable
miembro es un miembro de un tipo de Visual Basic; se declara en el nivel de mdulo, dentro
de una clase, estructura o mdulo, pero no dentro de ningn procedimiento interno de esa
clase, estructura o mdulo.

Variables compartidas y de instancias


La categora de una variable miembro, en una clase o estructura, depende de que la variable
est o no compartida. Si una variable se declara con la palabra clave Shared, es una variable
compartida, y existe en una nica copia compartida por todas las instancias de la clase o
estructura.
De lo contrario, es una variable de instancia, y se crea una copia independiente de ella para
cada instancia de la clase o estructura.Una copia determinada de una variable de instancia slo
est disponible en la instancia de la clase o estructura en que se cre.Es independiente de una
copia de la variable de instancia en cualquier otra instancia de la clase o estructura.

Declarar el tipo de datos


La clusula As de la instruccin de declaracin permite definir el tipo de datos o de objetos de
la variable que se est declarando.Se puede especificar cualquiera de los siguientes tipos para
una variable:

Un tipo de datos bsico, como Boolean, Long o Decimal.

Un tipo de datos compuesto, como una matriz o una estructura.

Un tipo de objeto o clase, definido en su aplicacin o en otra aplicacin

Clase de .NET Framework, como Label o TextBox

Un tipo de interfaz, como IComparable o IDisposable

Puede declarar varias variables en la misma instruccin sin necesidad de repetir el tipo de
datos. En las instrucciones siguientes, las variables i, jy k se declaran como tipo Integer, l y m
como Long, y x e y como Single:
Dim i, j, k As Integer

' All three variables in the preceding statement are declared as Integer.
Dim l, m As Long, x, y As Single
' In the preceding statement, l and m are Long, x and y are Single.

Para obtener ms informacin acerca de tipos de datos, consulte Tipos de datos en Visual
Basic.Para obtener ms informacin sobre objetos, consulte Objetos y clases de Visual Basic y
Programming with Components.

Inferencia de tipo de variable local


La inferencia de tipos se usa para determinar los tipos de datos de las variables locales que se
han declarado sin ninguna clusula As.El compilador deduce el tipo de la variable a partir del
tipo de la expresin de inicializacin.Esto permite declarar variables sin especificar un tipo de
forma explcita.En el ejemplo siguiente, num1 y num2 estn fuertemente tipados como
enteros.
VB

Public Sub inferenceExample()


' Using explicit typing.
Dim num1 As Integer = 3
' Using local type inference.
Dim num2 = 3
End Sub

Si desea utilizar la inferencia de tipo de variable local, Option Infer debe estar establecido en
On.Para obtener ms informacin, vea Inferencia de tipo de variable local (Visual Basic) y
Option Infer (instruccin).

Caractersticas de variables declaradas


El perodo de duracin de una variable representa el tiempo durante el cual la variable est
disponible para que pueda ser utilizada.En general, una variable existe mientras el elemento
que lo declara (como un procedimiento o clase) siga existiendo.Si la variable no necesita
seguir existiendo ms all de la duracin de su elemento contenedor, no necesita hacer nada
especial en la declaracin.Si la variable debe seguir existiendo durante ms tiempo que su
elemento contenedor, puede incluir la palabra clave Static o Shared en su instruccin Dim.
Para obtener ms informacin, vea Perodo de duracin en Visual Basic.
El mbito de una variable est formado por todo cdigo que puede hacer referencia a la
variable sin tener que calificar su nombre.El mbito de una variable est determinado por la
ubicacin en la que se haya declarado la variable.El cdigo de una regin determinada puede
utilizar las variables definidas en dicha regin sin necesidad de especificar los nombres de las
variables.Para obtener ms informacin, vea mbito en Visual Basic.

El nivel de acceso de una variable es la extensin de cdigo que tiene permiso para tener
acceso a ella.El modificador de acceso (como Public (Visual Basic) o Private (Visual Basic))
que utiliza en la instruccin Dim es quien determina esto.Para obtener ms informacin, vea
Niveles de acceso en Visual Basic.

claracin de variables (integer, single, boolean...) Visual Basic. Dim. Ejemplos.


Ejercicio resuelto (CU00309A)

Escrito por Mario R. Rancel


Resumen: Entrega n8 del curso Aprender a programar en Visual Basic desde cero.
Codificacin aprenderaprogramar.com: CU00309A

DECLARACIN DE VARIABLES EN VISUAL BASIC

A la hora de declarar variables conviene seguir las pautas indicadas en el curso Bases de la
programacin nivel I de aprenderaprogramar.com y, resumidamente:
Elegir siempre el tipo de variable ms sencillo posible.

Consideraremos que el grado de sencillez viene definido por la memoria requerida (a menor
memoria requerida mayor es la sencillez). Esto redunda en un menor consumo de recursos del
sistema y en una mayor rapidez de las operaciones que realiza el ordenador.
Realizar declaraciones ordenadas y claras.

Evitar el uso del tipo Variant u Object en la medida de lo posible.

Visual Basic permite declarar variables en mltiples lneas una por lnea pero
tambin varias variables en una lnea. Veamos ejemplos:

Expresin abreviada

Equivalente

a) Dim i%, j%, k%

a) Dim i As Integer, j As Integer, k


As Integer

b) Dim i% : Dim j% :
Dim k%

b) Dim i As Integer : Dim j As


Integer : Dim k As Integer

c) Dim i%, j%, k As


Integer

c) Dim i As Integer, j As Integer, k


As Integer

d) Dim i%

d) Dim i As Integer

Dim j%

Dim j As Integer

Dim k%

Dim k As Integer

e) Dim i As Integer
Dim j%, k%

e) Dim i As Integer
Dim j As Integer, k As Integer

Las opciones a), b), c), d), e) dan lugar a un mismo resultado. Se declaran tres variables tipo
Integer denominadas i, j, k. Las opciones a- e), escritas de forma extendida, tambin son
vlidas y con el mismo resultado. Nosotros nos decantamos por usar opciones como la c),
donde en una misma lnea aparezcan variables de un tipo de forma abreviada, excepto la
ltima que se pone extendida de forma aclaratoria, y en las que las variables de una misma
lnea tienen algn tipo de relacin. Por ejemplo tratarse de contadores para bucles.
Ten en cuenta que la declaracin Dim i, j, k As Integer no declara tres variables de tipo entero
de forma correcta. Esta sintaxis es imprecisa y por tanto no debemos utilizarla. Segn la
versin de Visual Basic que estemos usando esto puede generar errores o problemas. Conviene
tener cuidado a la hora de realizar declaraciones de variables para evitar prcticas de este tipo.

Una expresin como Dim i!, j%, k& equivale a Dim i As Single, j As Integer, k As Long. Esta
expresin es vlida, aunque como hemos dicho preferimos no declarar distintos tipos de
variables en una misma lnea.

EJERCICIO

Realizar una declaracin de variables para las siguientes propuestas de


programas.

a) Un programa que muestra un mensaje de bienvenida.

b) Un programa que nos pide nuestra edad y nos muestra el ao en que nacimos.

c) Un programa que nos muestra el valor medio de tres magnitudes.

d) Un programa que trabaja con: tres contadores para bucles, tres valores de
tensin en una viga (de magnitud no conocida), valores de longitud de la viga,
canto y ancho y un valor interruptor que permite o impide que se muestren
resultados.

SOLUCIN
a) Dim mensaje As String. Tambin es vlida la expresin abreviada Dim
mensaje$.

b) Dim edad As Integer. Tambin podemos usar la expresin abreviada Dim edad
%.

Se podra definir otra variable llamada aonacimiento segn el programador lo


estime oportuno o no.

c) Dim magnitud1!, magnitud2!, magnitud3 As Single


Dim media As Single

Hemos utilizado el tipo Single para cubrirnos las espaldas. No sabemos con qu tipo de
valores vamos a trabajar y por ello cogemos un tipo de variables bastante amplio como es el
Single. Preferimos no coger Double si no es estrictamente necesario.
Hemos utilizado dos lneas pero slo un tipo de variable Por qu? El programador ordena la
declaracin de variables como estime ms conveniente. En este caso ordenamos valores para
el clculo en una lnea y resultados en otra. Resulta ms fcil de leer y analizar que estando
todo en una sola lnea.

d) Dim i%, j%, k As Integer


Dim tension1!, tension2!, tension3 As Single
Dim largo!, canto!, ancho As Single
Dim Muestraresultados As Boolean.

Siempre ser preferible usar las expresiones tension1, tension2 y tension3 antes que t1, t2 y t3
que resultan ms confusas. Sin embargo, este tipo de decisiones siempre quedan a criterio del
programador.

CONTENIDO Y ASIGNACIN DE CONTENIDO A VARIABLES

Las normas para asignar contenido a variables sern las indicadas en el curso Bases de la
programacin nivel I de aprenderaprogramar.com, teniendo en cuenta que de forma general
usaremos estas equivalencias.

Nota: las variables "todo en uno" se denominan Variant en algunas versiones mientras que en
otras el tipo Variant no existe y su equivalente sera el tipo Object.

Ejemplos de asignacin de contenidos son estos:

Declaracin

Ejemplo asignacin
contenidos

Dim A As Integer

A = 123

A = - 3323.57

Dim A As Single

Dim A As String

A = Hay que
mejorar

Dim A As String

A = 123 coches

Dim A As String

A = Son 35,37
euros

Dim Salario As Integer

A = 30500

Dim Salario As Single

A = 30500

Dim Salario As String

A = Se asignarn
30500 euros

A=5+2
Dim A%, B%, Suma%

B = 32
Suma = A + B
[Suma valdr 39]

Dim A%, B%, C%, D%,

A=5

B = 32
C = A * B [C toma el
valor 160]

E%

D = A + C [D toma
el valor 165]
E=D

Dim Agotamiento As
Boolean

[E toma el
valor 165]

Agotamiento = True

Nota: la separacin decimal normalmente es un punto, pero tendrs que comprobarlo en tu


computador porque puede variar en funcin de las configuraciones aplicadas. Es decir,
normalmente se escribir un decimal como 3.33 en lugar de cmo 3,33.
Un programa que conste de:
Dim A As
Integer
A=7*B

dar lugar a un error debido a que B no est declarada.

En cambio:
Dim A%, B%
A=7*B

Supone que A valga cero, ya que si no se asigna un valor a B sta tiene por contenido el valor
por defecto, es decir, cero. 7 * B equivale en este caso a 7 * 0, que vale cero.

Das könnte Ihnen auch gefallen