Está en la página 1de 44

1

Programacin II
Bienvenidos a Visual Basic
Bienvenidos a Microsoft Visual Basic, la manera ms rpida y sencilla de crear
aplicaciones para Microsoft Windows

. Tanto si es un profesional experimentado como un


recin llegado a la programacin en Windows, Visual Basic le proporciona un juego
completo de herramientas que facilitan el desarrollo rpido de aplicaciones.
Qu es Visual Basic? La palabra "Visual" hace referencia al mtodo que se utiliza para
crear la interfaz grfica de usuario (GUI). En lugar de escribir numerosas lneas de cdigo
para describir la apariencia y la ubicacin de los elementos de la interfaz, simplemente
puede agregar objetos prefabricados en su lugar dentro de la pantalla. Si ha utilizado
alguna vez un programa de dibujo como Paint, ya tiene la mayor parte de las habilidades
necesarias para crear una interfaz de usuario efectiva.
La palabra "Basic" hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic
Instruction Code), un lenguaje utilizado por ms programadores que ningn otro lenguaje
en la historia de la informtica o computacin. Visual Basic ha evolucionado a partir del
lenguaje BASIC original y ahora contiene centenares de instrucciones, funciones y
palabras clave, muchas de las cuales estn directamente relacionadas con la interfaz
grfica de Windows. Los principiantes pueden crear aplicaciones tiles con slo aprender
unas pocas palabras clave, pero, al mismo tiempo, la eficacia del lenguaje permite a los
profesionales acometer cualquier objetivo que pueda alcanzarse mediante cualquier otro
lenguaje de programacin de Windows.
El lenguaje de programacin Visual Basic no es exclusivo de Visual Basic. La Edicin
para aplicaciones del sistema de programacin de Visual Basic, incluida en Microsoft
Excel, Microsoft Access y muchas otras aplicaciones Windows, utilizan el mismo lenguaje.
El sistema de programacin de Visual Basic, Scripting Edition (VBScript) es un lenguaje
de secuencias de comandos ampliamente difundido y un subconjunto del lenguaje Visual
Basic. La inversin realizada en el aprendizaje de Visual Basic le ayudar a abarcar estas
otras reas.
Si su objetivo es crear un pequeo programa para su uso personal o para su grupo de
trabajo, un sistema para una empresa o incluso aplicaciones distribuidas de alcance
mundial a travs de Internet, Visual Basic dispone de las herramientas que necesita.
Las caractersticas de acceso a datos le permiten crear bases de datos,
aplicaciones cliente, y componentes de servidor escalables para los formatos de
las bases de datos ms conocidas, incluidos Microsoft SQL Server y otras bases
de datos de mbito empresarial.
Las tecnologas ActiveX le permiten usar la funcionalidad proporcionada por
otras aplicaciones, como el procesador de textos Microsoft Word, la hoja de
clculo Microsoft Excel y otras aplicaciones Windows. Puede incluso automatizar
las aplicaciones y los objetos creados con la Edicin Profesional o la Edicin
Empresarial de Visual Basic.
2

Las capacidades de Internet facilitan el acceso a documentos y aplicaciones a
travs de Internet o intranet desde su propia aplicacin, o la creacin de
aplicaciones de servidor para Internet.
La aplicacin terminada es un autntico archivo .exe que utiliza una mquina
virtual de Visual Basic que puede distribuir con toda libertad.
Ediciones de Visual Basic
Visual Basic se encuentra disponible en tres versiones, cada una de las cuales est
orientada a unos requisitos de programacin especficos.
La Edicin de Aprendizaje de Visual Basic permite a los programadores crear
robustas aplicaciones para Microsoft Windows y Windows NT

. Incluye todos los


controles intrnsecos, adems de los controles de cuadrcula, de fichas y los
controles enlazados a datos. La documentacin proporcionada con esta edicin
incluye el CD "Aprenda VisualBasic ya" junto con el de la biblioteca de Microsoft
Developer Network (MSDN) que contienen documentacin completa en pantalla.
La Edicin Profesional proporciona a los profesionales un conjunto completo de
herramientas para desarrollar soluciones para terceros. Incluye todas las
caractersticas de la Edicin de Aprendizaje, as como controles ActiveX
adicionales, el diseador de aplicaciones para Internet Information Server y Visual
Database Tools and Data. La documentacin que se proporciona con la Edicin
Profesional incluye el libro Caractersticas empresariales de Visual Studio ms los
CD de Microsoft Developer Network que contienen documentacin completa en
pantalla.
La Edicin Empresarial permite a los profesionales crear slidas aplicaciones
distribuidas en un entorno de equipo. Incluye todas las caractersticas de la
Edicin Profesional, as como herramientas de Back Office como SQL Server,
Microsoft Transaction Server, Internet Information Server, Visual SourceSafe, SNA
Server, etc. La documentacin impresa que se proporciona con la Edicin
Empresarial incluye el libro Caractersticas empresariales de Visual Studio ms los
CD de Microsoft Developer Network que contienen documentacin completa en
pantalla.


Fundamentos de programacin
Este captulo presenta los componentes esenciales del lenguaje Visual Basic. Tras crear
la interfaz de la aplicacin mediante formularios y controles, necesitar escribir el cdigo
que defina el comportamiento de la aplicacin. Como cualquier lenguaje moderno de
programacin, Visual Basic acepta ciertas construcciones de programacin y elementos
de lenguaje comunes.
3

Visual Basic es un lenguaje de programacin basado en objetos. La simple mencin de la
palabra objetos puede provocar excesiva ansiedad en muchos programadores. No se
preocupe: quiz sin saberlo, ha estado trabajando con objetos la mayor parte de su vida.
Una vez que haya comprendido algunos conceptos bsicos, los objetos le facilitarn la
programacin ms que nunca.
Si ha programado en otros lenguajes, gran parte del material que se presenta en este
captulo le resultar familiar. Aunque la mayora de las construcciones son similares a
otros lenguajes, la naturaleza orientada a eventos de Visual Basic presenta algunas
diferencias sutiles. Procure abordar este material con la mente abierta; una vez que haya
comprendido las diferencias podr beneficiarse de ellas.
Si programa desde hace poco, el material de este captulo le servir de introduccin para
la construccin de bloques bsicos de cdigo. Una vez que comprenda los conceptos
bsicos, ser capaz de crear potentes aplicaciones con Visual Basic.
Temas

Estructura de una aplicacin en Visual Basic
Introduccin a los diversos componentes o mdulos que componen una aplicacin
de Visual Basic.

Antes de empezar a codificar
Breve discusin de algunas consideraciones que se deben tener en cuenta al
disear una aplicacin.

Mecnica de la escritura de cdigo
Introduccin a las caractersticas del Editor de cdigo, as como las reglas y
normas para escribir cdigo.

Introduccin a las variables, constantes y tipos de datos
Introduccin a los elementos bsicos del lenguaje Visual Basic.

Introduccin a los procedimientos
Introduccin a los procedimientos Sub y Function.

Introduccin a las estructuras de control
Introduccin a las estructuras de decisin y bucles.

Trabajar con objetos
Introduccin a la utilizacin de objetos en cdigo de Visual Basic.
4

Estructura de una aplicacin en Visual Basic
Una aplicacin no es ms que un conjunto de instrucciones para que el equipo realice una
o varias tareas. La estructura de una aplicacin es la forma en que se organizan las
instrucciones; es decir, dnde se almacenan las instrucciones y el orden en que se
ejecutan.
Las aplicaciones sencillas, como el ejemplo clsico "Hola mundo", tienen una estructura
sencilla; la organizacin no es muy importante cuando slo se tiene una lnea de cdigo.
A medida que las aplicaciones se van haciendo ms complejas, resulta obvia la necesidad
de organizar o estructurar. Imagine el caos resultante si su aplicacin se ejecutara en un
orden aleatorio. Adems de controlar la ejecucin de una aplicacin, la estructura es
importante para el programador: le resulta sencillo encontrar una instruccin
determinada en la aplicacin?
Puesto que una aplicacin de Visual Basic se basa en objetos, la estructura de su cdigo
se aproxima mucho a su representacin fsica en pantalla. Por definicin, los objetos
contienen datos y cdigo. El formulario que ve en la pantalla es una representacin de las
propiedades que definen su apariencia y su comportamiento intrnseco. Por cada
formulario de una aplicacin hay un mdulo de formulario relacionado (con la extensin de
nombre de archivo .frm) que contiene su cdigo.
Figura 5.1 Un formulario y su mdulo de formulario relacionado

Cada mdulo de formulario contiene procedimientos de evento (secciones de cdigo
donde se colocan las instrucciones que se ejecutarn como respuesta a eventos
especficos). Los formularios pueden contener controles. Por cada control de un
formulario, existe el correspondiente conjunto de procedimientos de evento en el mdulo
de formulario. Adems de procedimientos de evento, los mdulos de formulario pueden
5

contener procedimientos generales que se ejecutan como respuesta a una llamada desde
cualquier procedimiento de evento.
El cdigo que no est relacionado con un control o un formulario especfico se puede
colocar en un tipo diferente de mdulo, un mdulo estndar (.bas). Se deben colocar en
un mdulo estndar los procedimientos que se puedan usar como respuesta a eventos de
diversos objetos, en lugar de duplicar el cdigo en los procedimientos de evento de cada
objeto.
Se utiliza un mdulo de clase (.cls) para crear objetos a los que se puede llamar desde
procedimientos de la aplicacin. Mientras que un mdulo estndar slo contiene cdigo,
un mdulo de clase contiene cdigo y datos (puede considerarse como un control sin
representacin fsica).
Mientras que en "Administrar proyectos" se describen los componentes que puede
agregar a una aplicacin, este captulo explica cmo escribir cdigo en los distintos
componentes que conforman una aplicacin. De forma predeterminada, el proyecto
contiene un nico mdulo de formulario. Puede agregar mdulos adicionales de
formulario, clase y estndar, si es necesario. Los mdulos de clase se describen en
"Programar con objetos".
Cmo funciona una aplicacin controlada por eventos Una explicacin del modelo
controlado por eventos.
Cmo funciona una aplicacin controlada por
eventos
Un evento es una accin reconocida por un formulario o un control. Las aplicaciones
controladas por eventos ejecutan cdigo Basic como respuesta a un evento. Cada
formulario y control de Visual Basic tiene un conjunto de eventos predefinidos. Si se
produce uno de dichos eventos y el procedimiento de evento asociado tiene cdigo,
Visual Basic llama a ese cdigo.
Aunque los objetos de Visual Basic reconocen automticamente un conjunto predefinido
de eventos, usted decide cundo y cmo se responder a un evento determinado. A cada
evento le corresponde una seccin de cdigo (un procedimiento de evento). Cuando
desea que un control responda a un evento, escribe cdigo en el procedimiento de ese
evento.
Los tipos de eventos reconocidos por un objeto varan, pero muchos tipos son comunes a
la mayora de los controles. Por ejemplo, la mayora de los objetos reconocen el evento
Click: si un usuario hace clic en un formulario, se ejecuta el cdigo del procedimiento de
evento Click del formulario; si un usuario hace clic en un botn de comando, se ejecuta el
cdigo del procedimiento de evento Click del botn. El cdigo en cada caso ser
diferente.
He aqu una secuencia tpica de eventos en una aplicacin controlada por eventos:
6

1. Se inicia la aplicacin y se carga y muestra un formulario.
2. El formulario (o un control del formulario) recibe un evento. El evento puede estar
causado por el usuario (por ejemplo, por la pulsacin de una tecla), por el sistema
(por ejemplo, un evento de cronmetro) o, de forma indirecta, por el cdigo (por
ejemplo, un evento Load cuando el cdigo carga un formulario).
3. Si hay cdigo en el procedimiento de evento correspondiente, se ejecuta.
4. La aplicacin espera al evento siguiente.
Nota Muchos eventos se producen junto con otros eventos. Por ejemplo, cuando se
produce el evento DblClick, se producen tambin los eventos MouseDown, MouseUp y
Click.

Mecnica de la escritura de cdigo
Antes de empezar, es importante comprender la mecnica de escritura de cdigo en
Visual Basic. Como cualquier lenguaje de programacin, Visual Basic tiene sus propias
reglas para organizar, modificar y dar formato al cdigo.
Los temas siguientes presentan los procedimientos y mdulos de cdigo, muestran la
utilizacin bsica del Editor de cdigo y explican las reglas bsicas para escribir cdigo.
Mdulos de cdigo Introduccin a los diferentes tipos de procedimientos y mdulos
de cdigo que contienen.
Usar el Editor de cdigo Introduccin al trabajo con cdigo mediante el Editor de
cdigo.
Conceptos bsicos del cdigo Anlisis de las reglas del lenguaje Visual Basic.
Mdulos de cdigo
El cdigo en Visual Basic se almacena en mdulos. Hay tres tipos de mdulos: de
formulario, estndar y de clase.
Las aplicaciones sencillas pueden consistir en un nico formulario y todo el cdigo de la
aplicacin reside en ese mdulo de formulario. A medida que sus aplicaciones vayan
creciendo y siendo ms sofisticadas, agregar formularios adicionales. A veces tendr
cdigo comn que desear ejecutar en varios formularios. No querr duplicar el cdigo en
ambos formularios, por lo que crear un mdulo independiente que contenga un
procedimiento que ejecuta el cdigo comn. Este mdulo independiente debe ser un
mdulo estndar. Con el tiempo, puede construir una biblioteca de mdulos que contenga
los procedimientos compartidos.
7

Cada mdulo estndar, de clase y de formulario puede contener lo siguiente:
Declaraciones. Puede colocar declaraciones de constantes, tipos, variables y
procedimientos de bibliotecas de vnculos dinmicos (DLL) al nivel de mdulo de
formulario, de clase o estndar.
Procedimientos. Un procedimiento Sub, Function o Property contiene partes de
cdigo que se pueden ejecutar como una unidad. Se describen en la seccin
"Introduccin a los procedimientos", ms adelante en este mismo captulo.
Mdulos de formulario
Los mdulos de formulario (extensin de nombre de archivo .frm) son la base de la
mayora de las aplicaciones de Visual Basic. Pueden contener procedimientos que
controlen eventos, procedimientos generales y declaraciones a nivel de formulario de
variables, constantes, tipos y procedimientos externos. Si examina un mdulo de
formulario con un editor de textos, podr ver las descripciones del formulario y sus
controles, as como los valores de sus propiedades. El cdigo que se escribe en un
mdulo de formulario es especfico de la aplicacin a la que pertenece el formulario y
puede hacer referencia a otros formularios u objetos de la aplicacin.
Mdulos estndar
Los mdulos estndar (extensin de nombre de archivo .bas) son contenedores de los
procedimientos y declaraciones a los que tienen acceso otros mdulos de la aplicacin.
Pueden contener declaraciones globales (disponibles para toda la aplicacin) o a nivel de
mdulo de variables, constantes, tipos, procedimientos externos y procedimientos
globales. El cdigo que se escribe en un mdulo estndar no est ligado necesariamente
a una aplicacin determinada; si tiene cuidado de no hacer referencia a controles o
formularios por su nombre, puede reusar un mdulo estndar en distintas aplicaciones.
Mdulos de clase
Los mdulos de clase (extensin de nombre de archivo .cls) son la base de la
programacin orientada a objetos en Visual Basic. Puede escribir cdigo en mdulos de
clase para crear nuevos objetos. Estos objetos nuevos pueden incluir propiedades y
mtodos personalizados. En realidad, los formularios slo son mdulos de clase que
pueden tener controles y que pueden mostrar ventanas de formulario.
Para obtener ms informacin Para obtener ms informacin acerca de la escritura de
cdigo en mdulos de clases, vea "Programar con objetos".
Nota Las ediciones Profesional y Empresarial de Visual Basic incluyen tambin
documentos ActiveX, diseadores de ActiveX y controles de usuario. Estos introducen
nuevos tipos de mdulos con diferentes extensiones de nombre de archivo. Desde el
punto de vista de la escritura de cdigo, estos mdulos deben considerarse igual que los
mdulos de formulario.

8

Usar el Editor de cdigo
El Editor de cdigo de Visual Basic es una ventana donde se escribe la mayor parte del
cdigo. Es como un procesador de textos muy especializado con cierto nmero de
caractersticas que facilita en gran medida la escritura de cdigo en Visual Basic. La
ventana del Editor de cdigo se muestra en la figura 5.4.
Figura 5.4 La ventana del Editor de cdigo


Como trabaja con el cdigo de Visual Basic en mdulos, se abre una ventana distinta del
Editor de cdigo por cada mdulo que seleccione en el Explorador de proyectos. El cdigo
de cada mdulo est subdividido en distintas secciones para cada objeto del mdulo.
Para pasar de una seccin a otra se utiliza el cuadro de lista Objeto. En un mdulo de
formulario, la lista incluye una seccin general, una seccin para el formulario
propiamente dicho y una seccin para cada control del formulario. Para un mdulo de
clase, la lista incluye una seccin general y una seccin de clase; para un mdulo
estndar slo se muestra una seccin general.
Cada seccin de cdigo puede contener varios procedimientos distintos, a los que se
tiene acceso mediante el cuadro de lista Procedimiento. La lista de procedimientos de un
mdulo de formulario contiene una seccin distinta para cada procedimiento de evento del
formulario o el control. Por ejemplo, la lista de procedimientos de un control Label incluye
secciones para los eventos Change, Click y DblClick, entre otros. Los mdulos de clase
slo muestran los procedimientos de evento para la propia clase (Initialize y Terminate).
9

Los mdulos estndar no muestran ningn procedimiento de evento, ya que un mdulo
estndar no acepta eventos.
La lista de procedimientos de la seccin general de un mdulo contiene una nica
seleccin, la seccin de declaraciones, donde se colocan las declaraciones a nivel de
mdulo de variables, constantes y DLL. Segn vaya agregando procedimientos Sub o
Function a un mdulo, dichos procedimientos se agregan al cuadro de lista
Procedimiento bajo la seccin de declaraciones.
En la ventana del Editor de cdigo hay disponibles dos vistas distintas del cdigo. Puede
elegir ver un nico procedimiento cada vez o ver todos los procedimientos del mdulo,
estando cada procedimiento separado del siguiente mediante una lnea (como se muestra
en la figura 5.4). Para cambiar entre las dos vistas, utilice los botones Ver seleccin de la
esquina inferior izquierda de la ventana del editor.
Terminar el cdigo de forma automtica
Visual Basic hace que la escritura de cdigo sea mucho ms sencilla mediante
caractersticas que llenan automticamente instrucciones, propiedades y argumentos. A
medida que va introduciendo cdigo, el editor muestra listas de elecciones adecuadas,
prototipos de instrucciones o funciones, o valores. Hay opciones para activar o desactivar
estas y otras configuraciones de cdigo en la ficha Editor del cuadro de dilogo
Opciones, al que se tiene acceso a travs del comando Opciones del men
Herramientas.
Cuando especifica el nombre de un control en el cdigo, la caracterstica Lista de
miembros automtica presenta una lista desplegable con las propiedades disponibles
para ese control (figura 5.5). Escriba las primeras letras del nombre de la propiedad y se
seleccionar en la lista; la tecla TAB completar la escritura. Esta opcin resulta tambin
muy til cuando no sepa con seguridad qu propiedades hay disponibles para un
determinado control. Incluso aunque haya elegido desactivar la caracterstica Lista de
miembros automtica, podr tener acceso a esta caracterstica mediante la combinacin
de teclas Ctrl-J.
Figura 5.5 La caracterstica Lista de miembros automtica

10

La caracterstica Informacin rpida automtica muestra la sintaxis de las instrucciones y
funciones (figura 5.6). Cuando escriba el nombre de una instruccin o funcin vlida de
Visual Basic se mostrar la sintaxis inmediatamente debajo de la lnea actual, con el
primer argumento en negrita. Una vez que haya escrito el valor del primer argumento, se
mostrar en negrita el segundo argumento. Tambin se puede tener acceso a Informacin
rpida automtica con la combinacin de teclas Ctrl-I.
Figura 5.6 Informacin rpida automtica

Marcadores
Puede usar marcadores para marcar lneas de cdigo en el editor de cdigo para que
pueda volver ms tarde a ellas. Lo comandos para alternar marcadores y para
desplazarse por los marcadores existentes estn disponibles en el men Edicin,
elemento del men Marcadores, o en la barra de herramientas Edicin.
Para obtener ms informacin Para obtener ms informacin acerca de las
combinaciones de teclas para tener acceso a stas y otras funciones en la ventana del
Editor de cdigo, vea "Crear mtodos abreviados de teclado" en el captulo 7.







11

Conceptos bsicos del cdigo
Esta seccin presenta informacin acerca de la mecnica de escritura de cdigo,
incluyendo dividir y combinar lneas de cdigo, agregar comentarios al cdigo, usar
nmeros en el cdigo y seguir las convenciones de nomenclatura en Visual Basic.
Dividir una nica instruccin en varias lneas
Puede dividir una instruccin larga en varias lneas en la ventana del Editor de cdigo si
utiliza el carcter de continuacin de lnea (un espacio en blanco seguido de un signo de
subrayado). La utilizacin de este carcter puede hacer que sea ms fcil leer el cdigo,
tanto en la pantalla como impreso en papel. El cdigo siguiente se ha dividido en tres
lneas mediante caracteres de continuacin de lnea ( _):
Data1.RecordSource = _
"SELECT * FROM Titles, Publishers" _
& "WHERE Publishers.PubId = Titles.PubID _
& "AND Publishers.State = 'CA'"
No puede poner un comentario despus de un carcter de continuacin de lnea en la
misma lnea. Tambin hay algunas limitaciones sobre dnde se puede usar el carcter de
continuacin de lnea.
Combinar instrucciones en una lnea
Normalmente hay una instruccin de Visual Basic por lnea y no hay ningn terminador de
instruccin. Sin embargo, puede colocar dos o ms instrucciones en una lnea si utiliza un
signo de dos puntos (:) para separarlas:
Text1.Text = "Hola" : Red = 255 : Text1.BackColor = _
Red
Sin embargo, para hacer el cdigo ms legible, es mejor colocar cada instruccin en una
lnea distinta.
Para obtener ms informacin Para obtener ms informacin, vea "Especificaciones,
limitaciones y formatos de archivos de Visual Basic".
Agregar comentarios al cdigo
Segn vaya leyendo los ejemplos de esta gua, a menudo ver el smbolo de comentario
('). Este smbolo indica a Visual Basic que pase por alto las palabras que van a
continuacin de l. Estas palabras son comentarios situados en el cdigo para el
desarrollador y otros programadores que vayan a examinar despus el cdigo. Por
ejemplo:
' Este comentario comienza en el borde izquierdo de
' la pantalla.
12

Text1.Text = "Hola" ' Pone un saludo amistoso
' en el cuadro de texto.
Los comentarios pueden seguir a una instruccin en la misma lnea o pueden ocupar una
lnea completa. Ambos se ilustran en el cdigo anterior. Recuerde que los comentarios no
pueden ir detrs de un carcter de continuacin de lnea en la misma lnea.
Nota Puede agregar o eliminar smbolos que indican comentarios en un bloque de cdigo
seleccionando dos o ms lneas de cdigo y seleccionando los botones Bloque con
comentarios o Bloque sin comentarios en la barra de herramientas Edicin.
Descripcin de los sistemas de numeracin
La mayora de los nmeros de este documento son decimales (base 10). Pero en
ocasiones es conveniente usar nmeros hexadecimales (base 16) o nmeros octales
(base 8). Visual Basic representa los nmeros hexadecimales con el prefijo &H y los
octales con &O. La tabla siguiente muestra los mismos nmeros en formato decimal, octal
y hexadecimal.
Decimal Octal Hexadecimal
9 &O11 &H9
15 &O17 &HF
16 &O20 &H10
20 &O24 &H14
255 &O377 &HFF

Normalmente no tendr que aprender los sistemas hexadecimal u octal ya que el equipo
puede trabajar con nmeros en cualquier sistema. Sin embargo, algunos sistemas de
numeracin se prestan a determinadas tareas, como la utilizacin de nmeros
hexadecimales para configurar los colores de la pantalla y los controles.
Convenciones de nomenclatura en Visual Basic
Cuando escribe cdigo en Visual Basic, declara y asigna nombre a muchos elementos
(procedimientos Sub y Function, variables, constantes, etc.). Los nombres de
procedimientos, variables y constantes que declara en el cdigo de Visual Basic deben
seguir estas directrices:
13

Deben comenzar por una letra.
No pueden contener puntos o caracteres de declaracin de tipos (caracteres
especiales que especifican tipos de datos.
No pueden superar los 255 caracteres. Los nombres de controles, formularios,
clases y mdulos no deben exceder los 40 caracteres.
No pueden ser iguales que las palabras clave restringidas.
Una palabra clave restringida es una palabra que Visual Basic utiliza como parte de su
lenguaje. Esto incluye a las instrucciones predefinidas (como If y Loop), funciones (como
Len y Abs) y operadores (como Or y Mod).
Para obtener ms informacin Para ver la lista completa de palabras clave, vea la
Referencia del lenguaje.
Los formularios y controles pueden tener el mismo nombre que una palabra clave
restringida. Por ejemplo, puede tener un control que se llame Loop. Sin embargo, en el
cdigo no puede hacer referencia a ese control de la forma habitual, ya que Visual Basic
supone que se est refiriendo a la palabra clave Loop. Por ejemplo, este cdigo provoca
un error:
Loop.Visible = True ' Provoca un error.
Para referirse a un formulario o un control que tenga el mismo nombre que una palabra
clave restringida, debe calificarlo o ponerlo entre corchetes: [ ]. Por ejemplo, este cdigo
no provoca un error:
MiForm.Loop.Visible = True ' Calificado con el nombre del
' formulario.
[Loop].Visible = True ' Con corchetes tambin funciona.
Puede usar corchetes de esta forma cuando haga referencia a formularios y controles,
pero no cuando declare una variable o defina un procedimiento con el mismo nombre que
una palabra clave restringida. Tambin se pueden usar corchetes para que Visual Basic
acepte nombres de otras bibliotecas de tipos que entren en conflicto con palabras clave
restringidas.
Nota Puesto que escribir corchetes puede resultar tedioso, evite la utilizacin de palabras
clave restringidas en los nombres de formularios y controles. Sin embargo, puede usar
esta tcnica si una versin posterior de Visual Basic define una palabra clave nueva que
entre en conflicto con un nombre de formulario o control existente y est actualizando el
cdigo para que funcione con la versin nueva.



14

Introduccin a las variables, constantes y tipos de
datos
A menudo necesitar almacenar valores temporalmente cuando est realizando clculos
con Visual Basic. Por ejemplo, puede que desee calcular diversos valores, compararlos y
realizar distintas operaciones con ellos, dependiendo de los resultados de la comparacin.
Necesitar conservar los valores si desea compararlos, pero no necesitar almacenarlos
en una propiedad.
Visual Basic, como la mayora de los lenguajes de programacin, utiliza variables para
almacenar valores. 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 datos que
puede almacenar la variable). Se pueden usar matrices para almacenar colecciones
indexadas de variables relacionadas.
Las constantes tambin almacenan valores pero, como su nombre indica, estos valores
permanecen constantes durante la ejecucin de la aplicacin. La utilizacin de constantes
puede hacer ms legible el cdigo ya que proporciona nombres significativos en vez de
nmeros. Visual Basic incorpora una serie de constantes, pero puede crear sus propias
constantes.
Los tipos de datos controlan el almacenamiento interno de datos en Visual Basic. De
forma predeterminada, Visual Basic utiliza el tipo de dato Variant. Hay otros tipos de
datos disponibles que le permiten optimizar el cdigo en cuanto a velocidad y tamao
cuando no necesite la flexibilidad que proporciona el tipo Variant.
Para obtener informacin ms detallada, vea:
Variables Introduccin a las variables: qu son y cmo usarlas.
Descripcin del alcance de las variables Anlisis de cmo se aplica el alcance a
las variables.
Temas avanzados sobre variables Informacin detallada sobre las variables.
Variables estticas Introduccin a la utilizacin de variables estticas para
preservar valores.
Constantes Introduccin a la utilizacin de constantes para representar valores.
Tipos de datos Anlisis de los tipos de datos disponibles en Visual Basic.
Temas avanzados sobre el tipo de dato Variant Informacin detallada sobre el tipo
de dato Variant.
Matrices Introduccin a la utilizacin de matrices para grupos de valores.
Matrices dinmicas Anlisis sobre la utilizacin de matrices dinmicas para
trabajar con grupos de valores



15

Variables
En Visual Basic puede usar variables para almacenar valores temporalmente durante la
ejecucin de una aplicacin. 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
datos que la variable puede almacenar).
Puede considerar una variable como un marcador de posicin en memoria de un valor
desconocido. Por ejemplo, suponga que est creando un programa para una frutera que
haga un seguimiento del precio de las manzanas. No sabe el precio de una manzana o la
cantidad que se ha vendido hasta que no se produce realmente la venta. Puede usar dos
variables para almacenar los valores desconocidos (vamos a llamarlos PrecioManzanas y
ManzanasVendidas). Cada vez que se ejecuta el programa, el usuario especifica los
valores de las dos variables. Para calcular las ventas totales y mostrarlas en un cuadro de
texto llamado txtVentas, el cdigo debera parecerse al siguiente:
txtVentas.txt = PrecioManzanas * ManzanasVendidas
La expresin devuelve un total distinto cada vez, dependiendo de los valores que indique
el usuario. Las variables le permiten realizar un clculo sin tener que saber antes cules
son los valores especificados.
En este ejemplo, el tipo de dato de PrecioManzanas es Currency; el tipo de dato de
ManzanasVendidas es Integer. Las variables pueden representar otros muchos valores
como valores de texto, fechas, diversos tipos numricos e incluso objetos.
Almacenar y recuperar datos en variables
Utilice instrucciones de asignacin para realizar clculos y asignar el resultado a una
variable:
ManzanasVendidas = 10 ' Se pasa el valor 10 a
' la variable.
ManzanasVendidas = ManzanasVendidas + 1 ' Se incrementa la variable.
Observe que el signo igual del ejemplo es un operador de asignacin, no un operador de
igualdad; el valor (10) se asigna a la variable (ManzanasVendidas).
Declarar variables
Declarar una variable es decirle al programa algo de antemano. Se declara una variable
mediante la instruccin Dim, proporcionando un nombre a la variable:
Dim nombreVariable [As tipo]
Las variables que se declaran en un procedimiento mediante la instruccin Dim slo
existen mientras se ejecuta el procedimiento. Cuando termina el procedimiento,
desaparece el valor de la variable. Adems, el valor de una variable de un procedimiento
16

es local de dicho procedimiento; es decir, no puede tener acceso a una variable de un
procedimiento desde otro procedimiento. Estas caractersticas le permiten usar los
mismos nombres de variables en distintos procedimientos sin preocuparse por posibles
conflictos o modificaciones accidentales.
El nombre de una variable:
Debe comenzar con una letra.
No puede incluir un punto o un carcter de declaracin 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 clusula opcional As tipo de la instruccin 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 informacin
que almacena la variable. Algunos ejemplos de tipos de datos son String, Integer y
Currency. Las variables tambin 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.
Para obtener ms informacin Para obtener ms informacin acerca de los objetos, vea
"Programar con objetos" y "Programar con componentes". Los tipos de datos se explican
con ms detalle en "Tipos de datos", ms adelante en este mismo captulo.
Hay otras formas de declarar variables:
Declarar una variable en la seccin Declaraciones de un mdulo de formulario,
estndar o de clase, en vez de en un procedimiento, hace que la variable est
disponible para todos los procedimientos del mdulo.
Declarar una variable mediante la palabra clave Public hace que est accesible
para toda la aplicacin.
Declarar una variable local mediante la palabra clave Static preserva su valor
aunque termine el procedimiento.
Declaracin implcita
No tiene por qu declarar una variable antes de usarla. Por ejemplo, podra escribir una
funcin donde no hiciera falta declarar TempVal antes de usarla:
Function SafeSqr(num)
TempVal = Abs(num)
SafeSqr = Sqr(TempVal)
End Function
17

Visual Basic crea automticamente una variable con ese nombre, que puede usar como si
la hubiera declarado explcitamente. Aunque es cmodo, puede provocar errores sutiles
en el cdigo si se equivoca de nombre de variable. Por ejemplo, suponga que ha escrito
esta funcin:
Function SafeSqr(num)
TempVal = Abs(num)
SafeSqr = Sqr(TemVal)
End Function
A primera vista, parece igual. Pero como se ha escrito errneamente la variable TempVal
en la tercera lnea, la funcin 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 errnea una variable existente, por lo que crea una
variable nueva con ese nombre.
Declaracin explcita
Para evitar problemas al equivocarse de nombre en las variables, puede estipular que
Visual Basic le avise siempre que encuentre un nombre que no se haya declarado
explcitamente como una variable.
Para declarar variables de forma explcita
Incluya esta instruccin en la seccin Declaraciones del mdulo de clase, de
formulario o estndar:
Option Explicit
o bien
En el men Herramientas, elija Opciones, haga clic en la ficha Editor y active la
opcin Requerir declaracin de variables. Esto inserta automticamente la
instruccin Option Explicit en los mdulos nuevos, pero no en los ya creados, por
lo que tendr que agregar manualmente Option Explicit a los mdulos existentes
en el proyecto.
Si hubiera tenido efecto dicha instruccin en el mdulo de formulario o estndar que
contiene la funcin SafeSqr, Visual Basic habra reconocido TempVal y TemVal como
variables no declaradas y habra generado errores para ambas. Debera, por tanto,
declarar explcitamente TempVal:
Function SafeSqr(num)
Dim TempVal
TempVal = Abs(num)
SafeSqr = Sqr(TemVal)
End Function
18

Ahora podr comprender el problema inmediatamente porque Visual Basic habr
mostrado un mensaje de error para la variable TemVal que se ha escrito de forma
incorrecta. Como la instruccin Option Explicit le ayuda a interceptar esta clase de
errores, es conveniente usarla en todo el cdigo.
Nota La instruccin Option Explicit funciona sobre mdulo a mdulo; debe colocarse en
la seccin Declaraciones de todos los mdulos de formulario, estndar o de clase en los
que desee que Visual Basic obligue a declarar explcitamente las variables. Si activa
Requerir declaracin de variables, Visual Basic insertar Option Explicit en todos los
mdulos de formulario, estndares o de clase siguientes, pero no lo agregar en el cdigo
existente. Deber agregar manualmente Option Explicit a los mdulos ya existentes en
el proyecto.
Constantes
A menudo ver que el cdigo contiene valores constantes que reaparecen una y otra vez.
O puede que el cdigo dependa de ciertos nmeros que resulten difciles de recordar
(nmeros que, por s mismos, no tienen un significado obvio).
En estos casos, puede mejorar mucho la legibilidad del cdigo y facilitar su mantenimiento
si utiliza constantes. Una constante es un nombre significativo que sustituye a un nmero
o una cadena que no vara. 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 orgenes para las constantes:
Constantes intrnsecas o definidas por el sistema proporcionadas por aplicaciones
y controles. Las constantes de Visual Basic se muestran en Visual Basic (VB) y
Visual Basic para aplicaciones (VBA) y las bibliotecas de objetos en el Examinador
de objetos. Otras aplicaciones que proporcionan bibliotecas de objetos, como
Microsoft Excel y Microsoft Project, tambin proporcionan una lista de constantes
que puede usar con sus objetos, mtodos y propiedades. Tambin se definen
constantes en la biblioteca de objetos de cada control ActiveX. Para obtener ms
detalles acerca de la utilizacin del Examinador de objetos, vea "Programar con
objetos".
Las constantes simblicas o definidas por el usuario se declaran mediante la
instruccin Const. Las constantes definidas por el usuario se describen en la
prxima seccin, "Crear sus propias constantes".
En Visual Basic, los nombres de constantes tienen un formato que combina maysculas y
minsculas, con un prefijo que indica la biblioteca de objetos que define la constante. Las
constantes de las bibliotecas de objetos de Visual Basic y Visual Basic para aplicaciones
tienen el prefijo "vb"; por ejemplo, vbTileHorizontal.
Se ha diseado el sistema de prefijos para evitar colisiones accidentales en casos donde
las constantes tienen nombres idnticos y representan valores diferentes. Incluso con
prefijos, es posible que dos bibliotecas de objetos puedan contener constantes idnticas
que representen valores diferentes. La constante a la que se hace referencia en cada
caso depende de la biblioteca de objetos que tenga mayor prioridad. Para obtener ms
19

informacin acerca de la modificacin de la prioridad de las bibliotecas de objetos, vea
"Cuadro de dilogo Referencias" en el captulo 4.
Para estar totalmente seguro de evitar colisiones en los nombres de constantes, puede
calificar las referencias a constantes con la sintaxis siguiente:
[nombreBiblioteca.][nombreMdulo.]nombreConstante
nombreBiblioteca suele ser el nombre de clase del control o la biblioteca, nombreMdulo
es el nombre del mdulo que define la constante y nombreConstante es el nombre de la
constante. Cada uno de estos elementos se define en la biblioteca de objetos y se puede
ver en el Examinador de objetos.
Crear constantes propias
La sintaxis para declarar una constante es la siguiente:
[Public|Private] Const nombreConstante[As tipo] = expresin
El argumento nombreConstante es un nombre simblico vlido (las reglas son las mismas
que para crear nombres de variable) y expresin est compuesta por constantes y
operadores de cadena o numricos; sin embargo, no puede usar llamadas a funciones en
expresin.
Una instruccin Const puede representar una cantidad matemtica o de fecha y hora:
Const conPi = 3.14159265358979
Public Const conMaxPlanetas As Integer = 9
Const conFechaSalida = #1/1/95#
Se puede usar tambin la instruccin Const para definir constantes de cadena:
Public Const conVersion = "07.10.A"
Const conNombreClave = "Enigma"
Puede colocar ms de una declaracin de constante en una nica lnea si las separa con
comas:
Public Const conPi = 3.14, conMaxPlanetas = 9, conPobMundial = 6E+09
A menudo, la expresin del lado derecho del signo igual ( = ) es un nmero o cadena
literal, pero tambin puede ser una expresin que d como resultado un nmero o una
cadena (aunque la funcin no puede contener llamadas a funciones). Puede incluso
definir constantes en trminos de constantes previamente definidas:
Const conPi2 = conPi * 2
Una vez que defina las constantes, puede colocarlas en el cdigo para hacerlo ms
legible. Por ejemplo:
20

Static SistemaSolar(1 To conMaxPlanetas)
If numPersonas > conPopMundial Then Exit Sub
Alcance de las constantes definidas por el usuario
Una instruccin Const tiene igual alcance que una declaracin de variable y se le aplican
las mismas reglas:
Para crear una constante que slo exista en un procedimiento, declrela dentro del
procedimiento.
Para crear una constante disponible para todos los procedimientos de un mdulo,
pero no para el cdigo que est fuera del mdulo, declrela en la seccin
Declaraciones del mdulo.
Para crear una constante disponible en toda la aplicacin, declare la constante en
la seccin Declaraciones de un mdulo estndar y coloque delante de Const la
palabra clave Public. No se pueden declarar las constantes pblicas en un mdulo
de clase o de formulario.
Para obtener ms informacin Para obtener ms informacin acerca del alcance, vea
"Descripcin del alcance de las variables", anteriormente en este mismo captulo.
Evitar referencias circulares
Como es posible definir constantes en trminos de otras constantes, deber tener cuidado
para no establecer un ciclo o referencia circular entre dos o ms constantes. Se produce
un ciclo cuando se tienen dos o ms constantes pblicas, cada una de las cuales est
definida en funcin de la otra.
Por ejemplo:
' En Module 1:
Public Const conA = conB * 2 ' Disponible en toda la
' aplicacin.
' En Module 2:
Public Const conB = conA / 2 ' Disponible en toda la
' aplicacin.
Si se produce un ciclo, Visual Basic generar un error cuando intente ejecutar la
aplicacin. No puede ejecutar el cdigo hasta que resuelva la referencia circular. Para
evitar la creacin de un ciclo, restrinja todas las constantes pblicas a un nico mdulo o,
al menos, al menor nmero posible de mdulos.



21

Tipos de datos
Las variables son marcadores de posicin que se utilizan para almacenar valores; tienen
nombre y un tipo de dato. El tipo de dato de la variable determina cmo se almacenan los
bits que representan esos valores en la memoria del equipo. Cuando declare una variable,
tambin puede proporcionarle un tipo de dato. Todas las variables tienen un tipo de dato
que determina la clase de datos que pueden almacenar.
De forma predeterminada, si no proporciona un tipo de dato, la variable toma el tipo de
dato Variant. El tipo de dato Variant es como un camalen; puede representar diferentes
tipos de datos en distintas situaciones. No tiene que convertir estos tipos de datos cuando
los asigne a una variable Variant: Visual Basic realiza automticamente cualquier
conversin necesaria.
Sin embargo, si sabe que una variable almacenar siempre un tipo de dato determinado,
Visual Basic tratar de forma ms eficiente los datos si declara la variable con ese tipo.
Por ejemplo, se representa mejor una variable que va almacenar nombres de personas
como el tipo de dato String, ya que un nombre est siempre compuesto de caracteres.
Los tipos de datos se aplican a otras cosas adems de a las variables. Cuando asigna un
valor a una propiedad, dicho valor tiene un tipo de dato; los argumentos de las funciones
tienen tambin tipos de datos. De hecho, todo lo relacionado con datos en Visual Basic
tiene un tipo de dato.
Tambin puede declarar matrices de cualquiera de los tipos fundamentales.
Para obtener ms informacin Para obtener ms informacin, vea la seccin "Matrices",
ms adelante en este captulo. La seleccin de tipos de datos para mejorar el rendimiento
de la aplicacin se explica en "Disear buscando el rendimiento y la compatibilidad".
Declarar variables con tipos de datos
Antes de usar una variable que no sea Variant debe usar las instrucciones Private,
Public, Dim o Static para declararla As tipo. Por ejemplo, la siguiente instruccin declara
un tipo Integer, Double, String y Currency, respectivamente:
Private I As Integer
Dim Cantidad As Double
Static SuNombre As String
Public PagadoPorJuan As Currency
La instruccin de declaracin puede combinar varias declaraciones, como en las instrucciones
siguientes:
Private I As Integer, Amt As Double
Private SuNombre As String, PagadoPorJuan As Currency
Private Prueba, Cantidad, J As Integer
22

Nota Si no proporciona un tipo de dato, se asigna a la variable el tipo predeterminado. En
el ejemplo anterior, las variables Prueba y Cantidad tienen un tipo de dato Variant. Esto
puede sorprenderle si su experiencia con otros lenguajes de programacin le lleva a
esperar que todas las variables contenidas en la misma instruccin de declaracin tengan
el mismo tipo que ha especificado (en este caso, Integer).
Tipos de datos numricos
Visual Basic proporciona varios tipos de datos numricos: Integer, Long (entero largo),
Single (signo flotante de simple precisin), Double (signo flotante de doble precisin) y
Currency. Usar un tipo de dato numrico emplea normalmente menos espacio de
almacenamiento que un tipo Variant.
Si sabe que una variable siempre va a almacenar nmeros enteros (como 12) en vez de
nmeros fraccionarios (como 3,57), declrela como un tipo Integer o Long. Las
operaciones con enteros son ms rpidas y estos tipos consumen menos memoria que
otros tipos de datos. Resultan especialmente tiles como variables de contador en bucles
For...Next.
Para obtener ms informacin Para obtener ms informacin acerca de las estructuras
de control, vea "Introduccin a las estructuras de control", ms adelante en este mismo
captulo.
Si la variable contiene una fraccin, declrela como variable Single, Double o Currency.
El tipo de dato Currency acepta hasta cuatro dgitos a la derecha del separador decimal y
hasta quince dgitos a la izquierda; es un tipo de dato de signo fijo adecuado para clculos
monetarios. Los nmeros de signo flotante (Single y Double) tienen ms intervalo que
Currency, pero pueden estar sujetos a pequeos errores de redondeo.
Nota Los valores de signo flotante se pueden expresar como mmmEeee o mmmDeee,
donde mmm es la mantisa y eee el exponente (potencia de 10). El valor positivo ms alto
de un tipo de dato Single es 3,402823E+38 3,4 veces 10 a la 38
a
potencia; el valor
positivo ms alto de un tipo de dato Double es 1,79769313486232D+308 o alrededor de
1,8 veces 10 a la 308
a
potencia. Si utiliza D para separar la mantisa y el exponente en un
literal numrico, el valor se tratar como un tipo de dato Double. Igualmente, usar E de la
misma manera hace que el valor se trate como un tipo de dato Single.
El tipo de dato Byte
Si la variable contiene datos binarios, declrela como matriz de tipo Byte. (Las matrices
se describen en "Matrices", ms adelante en este mismo captulo). Usar variables Byte
para almacenar datos binarios los preserva durante las conversiones de formato. Cuando
se convierten las variables String entre los formatos ANSI y Unicode, los datos binarios
de la variable resultan daados. Visual Basic puede convertir automticamente entre
ANSI y Unicode al:
Leer archivos
Escribir archivos
23

Llamar a archivos DLL
Llamar a mtodos y propiedades en objetos
Todos los operadores que funcionan con enteros funcionan con el tipo de dato Byte
excepto el de resta unaria. Puesto que Byte es un tipo sin signo con el intervalo 0-255, no
puede representar un valor negativo. As, para la resta unaria, Visual Basic convierte
antes el tipo Byte en un entero con signo.
Es posible asignar todas las variables numricas entre s y a variables del tipo Variant.
Visual Basic redondea en vez de truncar la parte fraccionaria de un nmero de signo
flotante antes de asignarlo a un entero.
Para obtener ms informacin Para obtener ms detalles acerca de las conversiones
Unicode y ANSI, vea el captulo 16 "Aspectos internacionales".
El tipo de dato String
Si tiene una variable que siempre contendr una cadena y nunca un valor numrico,
puede declararla del tipo String:
Private S As String
As podr asignar cadenas a esta variable y manipularla mediante funciones de cadena:
S = "Base de datos"
S = Left(S, 4)
De forma predeterminada, una variable o argumento de cadena es una cadena de
longitud variable; la cadena crece o disminuye segn le asigne nuevos datos. Tambin
puede declarar cadenas de longitud fija. Especifique una cadena de longitud fija con esta
sintaxis:
String * tamao
Por ejemplo, para declarar una cadena que tiene siempre 50 caracteres de longitud, utilice
un cdigo como este:
Dim NombreEmp As String * 50
Si asigna una cadena con menos de 50 caracteres, NombreEmp se rellenar con
espacios en blanco hasta el total de 50 caracteres. Si asigna una cadena demasiado larga
a una cadena de longitud fija, Visual Basic simplemente truncar los caracteres.
Puesto que las cadenas de longitud fija se rellenan con espacios al final, ver que las
funciones Trim y RTrim, que quitan los espacios en blanco, resultan muy tiles cuando se
trabaja con ellas.
24

Las cadenas de longitud fija se pueden declarar en mdulos estndar como Public o
Private. En mdulos de clase y formulario, las cadenas de longitud fija deben declararse
como Private.
Para obtener ms informacin Vea "Funciones LTrim, RTrim y Trim" en la Referencia
del lenguaje.
Intercambiar cadenas y nmeros
Puede asignar una cadena a una variable numrica si la cadena representa un valor
numrico. Tambin es posible asignar un valor numrico a una variable de cadena. Por
ejemplo, coloque un botn de comando, un cuadro de texto y un cuadro de lista en un
formulario. Escriba el cdigo siguiente en el evento Click del botn de comando. Ejecute
la aplicacin y haga clic en el botn de comando.
Private Sub Command1_Click()
Dim intX As Integer
Dim strY As String
strY = "100.23"
intX = strY ' Pasa la cadena a una variable
numrica.
List1.AddItem Cos(strY) ' Agrega el coseno del nmero de la
' cadena al cuadro de lista.
strY = Cos(strY) ' Pasa el coseno a la variable de
cadena.
Text1.Text = strY ' Se imprime la variable de cadena en
el
' cuadro de texto.
End Sub
Visual Basic convertir automticamente las variables al tipo de dato apropiado. Debe
tener cuidado cuando intercambie nmeros y cadenas, ya que pasar un valor no numrico
a una cadena producir un error de tiempo de ejecucin.
El tipo de dato Boolean
Si tiene una variable que siempre contendr solamente informacin del tipo verdadero y
falso, s y no o activado o desactivado, puede declararla del tipo Boolean. El valor
predeterminado de Boolean es False. En el siguiente ejemplo, blnEjecutando es una
variable Boolean que almacena un simple s o no.
Dim blnEjecutando As Boolean
' Comprueba si la cinta est en marcha.
If Recorder.Direction = 1 Then
blnEjecutando = True
End if
25

El tipo de dato Date
Los valores de fecha y hora pueden almacenarse en el tipo de dato especfico Date en
variables Variant. En ambos tipos se aplican las mismas caractersticas generales a las
fechas.
Para obtener ms informacin Vea la seccin "Valores de fecha y hora almacenados en
tipos Variant" en "Temas avanzados sobre Variant".
Cuando se convierten otros tipos de datos numricos en Date, los valores que hay a la
izquierda del signo decimal representan la informacin de fecha, mientras que los valores
que hay a la derecha del signo decimal representan la hora. Medianoche es 0 y medioda
es 0.5. Los nmeros enteros negativos representan fechas anteriores al 30 de diciembre
de 1899.
El tipo de dato Object
Las variables Object se almacenan como direcciones de 32 bits (4 bytes) que hacen
referencia a objetos dentro de una aplicacin o de cualquier otra aplicacin. Una variable
declarada como Object es una variable que puede asignarse subsiguientemente
(mediante la instruccin Set) para referirse a cualquier objeto real reconocido por la
aplicacin.
Dim objDb As Object
Set objDb = OpenDatabase("c:\Vb5\biblio.mdb")
Cuando declare variables de objeto, intente usar clases especficas (como TextBox en vez
de Control o, en el caso anterior, Database en vez de Object) mejor que el tipo genrico
Object. Visual Basic puede resolver referencias a las propiedades y mtodos de objetos
con tipos especficos antes de que ejecute una aplicacin. Esto permite a la aplicacin
funcionar ms rpido en tiempo de ejecucin. En el Examinador de objetos se muestran
las clases especficas.
Cuando trabaje con objetos de otras aplicaciones, en vez de usar Variant o el tipo
genrico Object, declare los objetos como se muestran en la lista Clases en el
Examinador de objetos. Esto asegura que Visual Basic reconozca el tipo especfico de
objeto al que est haciendo referencia, lo que permite resolver la referencia en tiempo de
ejecucin.
Para obtener ms informacin Para obtener ms informacin acerca de la creacin y
asignacin de objetos y variables de objetos, vea "Crear objetos" ms adelante en este
mismo captulo.
Convertir tipos de datos
Visual Basic proporciona varias funciones de conversin que puede usar para convertir
valores en tipos de datos especficos. Por ejemplo, para convertir un valor a Currency,
utilice la funcin CCur:
26

PagoPorSemana = CCur(horas * PagoPorHora)
Funciones de conversin Convierten una expresin en
Cbool Boolean
Cbyte Byte
Ccur Currency
Cdate Date
CDbl Double
Cint Integer
CLng Long
CSng Single
CStr String
Cvar Variant
CVErr Error

Nota Los valores que se pasan a una funcin de conversin deben ser vlidos para el tipo
de dato de destino o se producir un error. Por ejemplo, si intenta convertir un tipo Long
en un Integer, el tipo Long debe estar en el intervalo vlido del tipo de dato Integer.
Para obtener ms informacin Busque las funciones especficas de conversin en la
Referencia del lenguaje.
El tipo de dato Variant
Una variable Variant es capaz de almacenar todos los tipos de datos definidos en el
sistema. No tiene que convertir entre esos tipos de datos si los asigna a una variable
Variant; Visual Basic realiza automticamente cualquier conversin necesaria. Por
ejemplo:
27

Dim AlgnValor ' De forma predeterminada es un tipo Variant.
AlgnValor = "17" ' AlgnValor contiene "17" (cadena de dos
' caracteres).
AlgnValor = AlgnValor - 15 ' AlgnValor ahora contiene
' el valor numrico 2.
AlgnValor = "U" & AlgnValor ' AlgnValor ahora contiene
' "U2" (una cadena de dos
' caracteres).
Si bien puede realizar operaciones con variables Variant sin saber exactamente el tipo de
dato que contienen, hay algunas trampas que debe evitar.
Si realiza operaciones aritmticas o funciones sobre un Variant, el Variant debe
contener un nmero. Para obtener ms detalles, vea la seccin "Valores
numricos almacenados en tipos Variant" en "Temas avanzados sobre Variant".
Si est concatenando cadenas, utilice el operador & en vez del operador +. Para
obtener ms detalles, vea la seccin "Cadenas almacenadas en tipos Variant" en
"Temas avanzados sobre Variant".
Adems de poder actuar como otros tipos de datos estndar, los Variant tambin pueden
contener tres valores especiales: Empty, Null y Error.
El valor Empty
A veces necesitar saber si se ha asignado un valor a una variable existente. Una variable
Variant tiene el valor Empty antes de asignarle un valor. El valor Empty es un valor
especial distinto de 0, una cadena de longitud cero ("") o el valor Null. Puede probar el
valor Empty con la funcin IsEmpty:
If IsEmpty(Z) Then Z = 0
Cuando un Variant contiene el valor Empty, puede usarlo en expresiones; se trata como
un 0 o una cadena de longitud cero, dependiendo de la expresin.
El valor Empty desaparece tan pronto como se asigna cualquier valor (incluyendo 0, una
cadena de longitud cero o Null) a una variable Variant. Puede establecer una variable
Variant de nuevo como Empty si asigna la palabra clave Empty al Variant.
El valor Null
El tipo de dato Variant puede contener otro valor especial: Null. Null se utiliza
comnmente en aplicaciones de bases de datos para indicar datos desconocidos o que
faltan. Debido a la forma en que se utiliza en las bases de datos, Null tiene algunas
caractersticas nicas:
Las expresiones que utilizan Null dan como resultado siempre un Null. As, se
dice que Null se "propaga" a travs de expresiones; si cualquier parte de la
expresin da como resultado un Null, la expresin entera tiene el valor Null.
28

Al pasar un Null, un Variant que contenga un Null o una expresin que d como
resultado un Null como argumento de la mayora de las funciones hace que la
funcin devuelva un Null.
Los valores Null se propagan a travs de funciones intrnsecas que devuelven
tipos de datos Variant.
Tambin puede asignar un Null mediante la palabra clave Null:
Z = Null
Puede usar la funcin IsNull para probar si una variable Variant contiene un Null:
If IsNull(X) And IsNull(Y) Then
Z = Null
Else
Z = 0
End If
Si asigna Null a una variable de un tipo que no sea Variant, se producir un error
interceptable. Asignar Null a una variable Variant no provoca ningn error y el Null se
propagar a travs de expresiones que contengan variables Variant (Null no se propaga
a travs de determinadas funciones). Puede devolver Null desde cualquier procedimiento
Function con un valor de devolucin de tipo Variant.
Null no se asigna a las variables a menos que se haga explcitamente, por lo que si no
utiliza Null en su aplicacin, no tendr que escribir cdigo que compruebe su existencia y
lo trate.
Para obtener ms informacin Para obtener ms informacin acerca de cmo usar Null
en expresiones, vea "Null" en la Referencia del lenguaje.
El valor Error
En un Variant, Error es un valor especial que se utiliza para indicar que se ha producido
una condicin de error en un procedimiento. Sin embargo, a diferencia de otros tipos de
error, no se produce el tratamiento de errores a nivel normal de aplicacin. Esto le permite
a usted o a la propia aplicacin elegir alternativas basadas en el valor del error. Los
valores de error se crean convirtiendo nmeros reales en valores de error mediante la
funcin CVErr.
Para obtener ms informacin Para obtener ms informacin acerca de cmo usar el
valor Error en expresiones, vea "Funcin CVErr" en la Referencia del lenguaje. Para
obtener ms informacin acerca del tratamiento de errores, vea el captulo 13 "Depurar el
cdigo y tratar errores". Para obtener ms informacin acerca del tipo de dato Variant,
vea "Temas avanzados sobre Variant".


29

Dim (Instruccin)
Declara variables y les asigna espacio de almacenamiento.
Sintaxis
Dim [WithEvents] nombre_variable[([subndices])] [As [New] tipo] [, [WithEvents]
nombre_variable[([subndices])] [As [New] tipo]] . . .
La sintaxis de la instruccin Dim consta de las siguientes partes:
Parte Descripcin
WithEvents Opcional. Palabra clave que especifica que nombre_variable es una
variable de objeto utilizada para responder a eventos desencadenados
por un objeto ActiveX. WithEvents solamente es vlido en mdulos de
clase. Puede declarar tantas variables individuales como desee
mediante WithEvents, pero no puede crear matrices con WithEvents.
No puede utilizar New con WithEvents.
nombre_
variable
Requerido. Nombre de la variable; sigue las convenciones estndar de
nombre de variable.
subndices Opcional. Dimensiones de la variable de matriz; se pueden declarar
hasta 60 dimensiones mltiples. El argumento subndices utiliza la
sintaxis siguiente:
[inferior To] superior [, [inferior To] superior] . . .
Cuando no se declara especficamente en inferior, el lmite inferior de
una matriz se controla mediante la instruccin Option Base. Este lmite
inferior es cero si no hay ninguna instruccin Option Base.
New Opcional. Palabra clave que habilita la creacin implcita de un objeto. Si
utiliza New cuando declara la variable de objeto, se crea una nueva
instancia del objeto como primera referencia, de forma que no tiene que
utilizar la instruccin Set para asignar la referencia del objeto. La
palabra clave New no se puede utilizar para declarar variables de
cualquier tipo de datos, intrnseco, para declarar instancias de objetos
dependientes ni con WithEvents.
tipo Opcional. Tipo de datos de la variable; puede ser Byte, Boolean, Integer,
Long, Currency, Single, Double, Decimal (actualmente no admitida),
30

Date, String (para cadenas de longitud variable), String * length (para
cadenas de longitud fija), Object, Variant, un tipo definido por el usuario,
o un tipo de objeto. Utilice una clusula distinta As tipo para cada
variable que defina.

Comentarios
Las variables declaradas con Dim en el nivel de mdulo estn disponibles para todos los
procedimientos disponibles slo dentro de ese mdulo. En el nivel de procedimiento, las
variables slo estn disponibles dentro de ese procedimiento.
Utilice la instruccin Dim en el nivel de mdulo o de procedimiento para declarar el tipo de
datos de una variable. Por ejemplo, la siguiente instruccin declara una variable como
Integer.
Dim NmeroDeEmpleados As Integer
Tambin puede utilizar una instruccin Dim para declarar el tipo de objeto de una
variable. La siguiente lnea declara una variable para una nueva instancia de una hoja de
clculo.
Dim X As New Worksheet
Si no utiliza la palabra clave New al declarar una variable de objeto, la variable que se
refiere al objeto debe asignarse a un objeto existente mediante la instruccin Set antes de
su uso. Hasta que se le asigne un objeto, la variable de objeto declarada tiene el valor
especial Nothing, el cual indica que no se refiere a ninguna instancia en particular de un
objeto.
Tambin puede utilizar la instruccin Dim con parntesis vacos para declarar matrices
dinmicas. Despus de declarar una matriz dinmica, use la instruccin ReDim dentro de
un procedimiento para definir el nmero de dimensiones y elementos de la matriz. Si
intenta volver a declarar una dimensin para una variable de matriz cuyo tamao se ha
especificado explcitamente en una instruccin Private, Public o Dim, ocurrir un error.
Si no especifica un tipo de datos o un tipo de objeto y no existe ninguna instruccin
Deftipo en el mdulo, la variable predeterminada ser Variant.
Cuando se inicializan variables, una variable numrica se inicializa con 0, una cadena de
longitud variable se inicializa con una cadena de longitud 0 ("") y una cadena de longitud
fija se llena con ceros. Las variables Variant se inicializan con Empty. Cada elemento de
una variable de un tipo definido por el usuario se inicializa como si fuera una variable
distinta.
Nota Cuando utiliza la instruccin Dim en un procedimiento, generalmente pone la
instruccin Dim al principio del mismo.
31

Option Explicit (Instruccin)
Se usa en el nivel de mdulo para forzar declaraciones explcitas de todas las variables
en dicho mdulo.
Sintaxis
Option Explicit
Comentarios
Si se usa, la instruccin Option Explicit debe aparecer en un mdulo antes de cualquier
procedimiento.
Cuando Option Explicit aparece en un mdulo, debe declarar explcitamente todas las
variables mediante las instrucciones Dim, Private, Public, ReDim o Static. Si intenta
usar un nombre de variable no declarado, ocurrir un error en tiempo de compilacin.
Si no usa la instruccin Option Explicit todas las variables no declaradas son Variant, a
menos que el tipo predeterminado est especificado de otra manera con una instruccin
Deftipo.
Nota Utilice Option Explicit para evitar escribir incorrectamente el nombre de una
variable existente o para evitar confusiones en el cdigo, donde el alcance de la variable
no est claro.











32

Resumen de tipos de datos
La tabla siguiente muestra los tipos de datos compatibles, incluyendo el tamao de
almacenamiento y el intervalo.
Tipo de datos Tamao de
almacenamiento
Intervalo
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/
precisin simple)
4 bytes -3,402823E38 a 1,401298E-45 para
valores negativos; 1,401298E-45 a
3,402823E38 para valores positivos
Double
(coma flotante/
precisin 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 nmero ms pequeo distinto
de cero es
+/-0,0000000000000000000000000001
33

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 nmeros)
16 bytes Cualquier valor numrico hasta el intervalo
de un tipo Double
Variant
(con caracteres)
22 bytes + longitud
de la cadena
El mismo intervalo que para un tipo String
de longitud variable
Definido por el
usuario
(utilizando Type)
Nmero 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 ms cuatro
bytes para cada dimensin de matriz, ms el nmero de bytes que ocupan los propios
datos. Puede calcular la memoria que ocupan los datos multiplicando el nmero de
elementos de datos por el tamao de cada elemento. Por ejemplo, los datos de una matriz
unidimensional que consten de cuatro elementos de datos tipo Integer de dos bytes cada
uno, ocupan ocho bytes. Los ocho bytes que requieren los datos ms 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 matiz requiere 12 bytes ms que la matriz por s sola.





34

Option Base (Instruccin)
Se usa en el nivel de mdulo para declarar el lmite inferior predeterminado para
subndices de matriz.
Sintaxis
Option Base {0 | 1}
Comentarios
Como la base predeterminada es 0, la instruccin Option Base nunca se requiere. Sin
embargo, si usa la instruccin debe aparecer en un mdulo antes de cualquier
procedimiento. Option Base slo puede aparecer una vez en un mdulo y debe preceder
a las declaraciones de matriz que incluyen las dimensiones.
Nota La clusula To en las instrucciones Dim, Private, Public, ReDim y Static
proporciona una forma ms flexible de controlar el intervalo de los subndices de una
matriz. Sin embargo, si no establece explcitamente el lmite inferior con una clusula To,
puede usar Option Base para cambiar el lmite inferior predeterminado a 1. La base de
una matriz creada con la funcin Array o la palabra clave ParamArray es cero; Option
Base no afecta a ParamArray (o la funcin Array, cuando se califica con el nombre de su
biblioteca de tipo, por ejemplo VBA.Array).
La instruccin Option Base slo afecta el lmite inferior de las matrices en el mdulo
donde se ubica la instruccin.
Deftipo (Instrucciones)
Se usan en el nivel de mdulo para establecer el tipo de datos predeterminado para
variables, argumentos pasado a procedimientos, y el valor devuelto por los
procedimientos Function y Property Get cuyos nombres comienzan con los caracteres
especificados.
Sintaxis
DefBool intervalo_letras[, intervalo_letras] . . .
DefByte intervalo_letras[, intervalo_letras] . . .
DefInt intervalo_letras[, intervalo_letras] . . .
DefLng intervalo_letras[, intervalo_letras] . . .
DefCur intervalo_letras[, intervalo_letras] . . .
DefSng intervalo_letras[, intervalo_letras] . . .
35

DefDbl intervalo_letras[, intervalo_letras] . . .
DefDec intervalo_letras[, intervalo_letras] . . .
DefDate intervalo_letras[, intervalo_letras] . . .
DefStr intervalo_letras[, intervalo_letras] . . .
DefObj intervalo_letras[, intervalo_letras] . . .
DefVar intervalo_letras[, intervalo_letras] . . .
El argumento requerido intervalo_letras posee la sintaxis siguiente:
letra1[-letra2]
Los argumentos letra1 y letra2 especifican el intervalo de nombres para el cual puede
establecer un tipo de datos predeterminado. Cada argumento representa la primera letra
del nombre de la variable, argumento, procedimiento Function o procedimiento Property
Get y puede ser cualquier letra del abecedario. En intervalo_letras no se distingue entre
maysculas y minsculas.
Comentarios
El nombre de la instruccin determina el tipo de datos:
Instruccin Tipo de datos
DefBool Boolean
DefByte Byte
DefInt Integer
DefLng Long
DefCur Currency
DefSng Single
DefDbl Double
36

DefDec Decimal (no se admite actualmente)
DefDate Date
DefStr String
DefObj Object
DefVar Variant

Por ejemplo, en el siguiente fragmento de programa, Mensaje es una variable de cadena:
DefStr A-Q
. . .
Mensaje = "Espacio de pila insuficiente."
Una instruccin Deftipo slo afecta al mdulo donde se usa. Por ejemplo, una instruccin
DefInt en un mdulo slo afecta al tipo de datos predeterminado de las variables, los
argumentos pasados a procedimientos y el tipo devuelto para los procedimientos
Function y Property Get declarados en ese mdulo; el tipo de datos predeterminado de
variables, argumentos y tipos devueltos en otros mdulos no se ven afectados. Si no se
declara explcitamente con una instruccin Deftipo, el tipo de datos predeterminado para
todas las variables, todos los argumentos, todos los procedimientos Function y todos los
procedimientos Property Get es Variant.
Cuando especifica un intervalo de letras, generalmente define el tipo de datos para
variables que comienzan con las letras de los 128 primeros caracteres del juego de
caracteres. Sin embargo, cuando especifica el intervalo de letras AZ, establece el tipo de
datos predeterminado para todas las variables, incluyendo cualquiera que comience con
caracteres internacionales provenientes de la parte extendida del juego de caracteres
(128255).
Tras especificar el intervalo AZ no es posible seguir redefiniendo cualquier subintervalo
de variables mediante instrucciones Deftipo. De hecho, una vez definido un intervalo, si
incluye una letra definida anteriormente en otra instruccin Deftipo, ocurrir un error. Sin
embargo, puede especificar explcitamente el tipo de datos de cualquier variable, definida
o no, mediante una instruccin Dim con una clusula As tipo. Por ejemplo, puede usar el
siguiente cdigo en el nivel de mdulo para definir una variable como Double incluso
aunque el tipo de datos predeterminado sea Integer:
DefInt A-Z
Dim PorcentajeImpuesto As Double
Las instrucciones Deftipo no afectan a elementos de tipos definidos por el usuario ya que
estos deben declararse explcitamente.
37

ForNext (Instruccin)
Descripcin
Repite un grupo de instrucciones un nmero especificado de veces.
Sintaxis
For contador = inicio To fin [Step paso]
[instrucciones]
[Exit For]
[instrucciones]
Next
La sintaxis de la instruccin For...Next tiene las siguientes partes:
Parte Descripcin
contador Requerido. Variable numrica que se utiliza como contador de
bucle. La variable no puede ser Booleana ni un elemento de
una matriz .
inicio Requerido. Valor inicial de contador.
fin Requerido. Valor final de contador.
paso Cantidad que se cambia contador cada vez que se ejecuta el
bucle. Si no se especifica, el valor predeterminado de paso es
uno.
instrucciones Una o ms instrucciones entre For y Next que se ejecutan el
nmero de veces especificado.
Comentarios
El argumento paso puede ser positivo o negativo. El valor del argumento paso determina
el procesamiento del bucle como se indica a continuacin:
Valor El bucle se ejecuta si
Positivo o 0 contador <= fin
Negativo contador >= fin
38

Una vez iniciado el bucle y una vez se comienzan a ejecutar todas las instrucciones del
bucle, se suma paso a contador. En este punto, las instrucciones del bucle se vuelven a
ejecutar (basado en la misma comprobacin que produjo la ejecucin inicial del bucle), o
se sale del bucle y contina la ejecucin con la instruccin que sigue a la instruccin Next.

Sugerencia Si cambia el valor de contador mientras est entro del bucle, puede
dificultar ms la lectura y depuracin del cdigo.


Exit For slo se puede usar dentro de una estructura de control For Each...Next o
For...Next para proporcionar una forma alternativa de salir. Se puede colocar cualquier
nmero de instrucciones Exit For en cualquier lugar del bucle. Exit For se suele usar
junto con la evaluacin de alguna condicin (por ejemplo, If...Then), y transfiere el control
a la instruccin que sigue a Next.
Puede anidar bucles For...Next colocando un bucle For...Next dentro de otro. Asigne a
cada bucle un nombre de variable nico como contador. La siguiente construccin es
correcta:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
. . .
Next
Next
Next

Format (Funcin)
Devuelve un tipo Variant (String) que contiene una expresin formateada de acuerdo a
las instrucciones contenidas en una expresin de formato.
Sintaxis
Format(expresin[, formato[, primerdadesemana[, primerdadeao]]])
La sintaxis de la funcin Format consta de las siguientes partes:
Parte Descripcin
39

expresin Requerido. Cualquier expresin vlida.
formato Opcional. Una expresin de formato definida por el usuario o con
nombre vlida.
primerdadesemana Opcional. Una constante que especifica el primer da de la semana.
primerdadeao Opcional. Una constante que especifica la primera semana del ao.

Valores
El argumento primerdadesemana tiene estos valores:
Constante Valor Descripcin
vbUseSystem 0 Utiliza el valor de API NLS.
vbSunday 1 Domingo (predeterminado)
vbMonday 2 Lunes
vbTuesday 3 Martes
vbWednesday 4 Mircoles
vbThursday 5 Jueves
vbFriday 6 Viernes
vbSaturday 7 Sbado

El argumento primerdadeao tiene estos valores:
Constante Valor Descripcin
40

vbUseSystem 0 Utiliza el valor de API NLS.
vbFirstJan1 1 Comienza con la semana donde est el 1 de enero
(predeterminado).
vbFirstFourDays 2 Comienza con la primera semana del ao que tenga
cuatro das como mnimo.
vbFirstFullWeek 3 Comienza con la primera semana completa del ao.

Comentarios
Para dar formatp Haga esto
Nmeros Utilice formatos numricos con nombre predefinidos o cree
formatos numricos definidos por el usuario.
Fechas y horas Utilice formatos de fecha/hora con nombre predefinidos o cree
formatos de fecha/hora definidos por el usuario.
Nmeros seriales de
fecha y hora
Utilice formatos de fecha y hora o formatos numricos.
Cadenas Cree sus propios formatos de cadena definidos por el usuario.

Si intenta dar formato a un nmero sin especificar formato, Format proporciona una
funcionalidad similar a la de la funcin Str. Sin embargo, los nmeros positivos a los que
se les ha dado formato de cadena de caracteres mediante Format carecen del espacio
inicial reservado para mostrar el signo del valor, mientras que los convertidos utilizando
Str conservan el espacio inicial.




41

Formatos numricos definidos por el usuario
(funcin Format)
La tabla siguiente identifica los caracteres que puede utilizar para crear formatos definidos
por el usuario:
Carcter Descripcin
Ninguno Muestra el nmero sin formato.
(0) Marcador de posicin de dgito. Muestra un dgito o un cero. Si la
expresin tiene un dgito en la posicin donde aparece el 0 en la cadena
de formato, se muestra el dgito; de lo contrario, se muestra un cero en
esa posicin.
Si el nmero tiene menos dgitos que ceros (a cualquier lado del
separador decimal) en la expresin de formato, se muestran los ceros a la
izquierda o a la derecha. Si el nmero tiene ms dgitos a la derecha del
separador decimal que ceros hay a la derecha del separador decimal en
la expresin de formato, se redondea el nmero en tantos lugares
decimales como ceros existan. Si el nmero tiene ms dgitos a la
izquierda del separador decimal que ceros hay a la izquierda del
separador decimal en la expresin de formato, se muestran los dgitos
adicionales sin modificacin.
(#) Marcador de posicin de dgito. Muestra un dgito o nada. Si la expresin
tiene un dgito en la posicin donde aparece # en la cadena de formato,
se muestra el dgito; de lo contrario, no se muestra nada en esa posicin.
Este smbolo funciona como el marcador de posicin del dgito 0, excepto
en que no se muestran los ceros a la izquierda o a la derecha si el nmero
tiene los mismos o menos dgitos que caracteres # hay a cualquier lado
del separador decimal en la expresin de formato.
(.) Marcador de posicin decimal. En algunas configuraciones regionales, se
utiliza una coma como separador decimal. El marcador de posicin
decimal determina cuntos dgitos se muestran a la izquierda y a la
derecha del separador decimal. Si la expresin de formato contiene slo
signos de nmero a la izquierda de este smbolo, los nmeros menores de
1 comienzan con un separador decimal. Si se desea que siempre se
muestre un cero a la izquierda en los nmeros fraccionarios, utilice 0
como marcador de posicin del primer dgito a la izquierda del separador
decimal. El carcter real utilizado como marcador de posicin decimal en
la salida con formato depende del formato de nmero reconocido por el
42

sistema.
(%) Marcador de posicin de porcentaje. La expresin se multiplica por 100. El
carcter de porcentaje (%) se inserta en la posicin donde aparece en la
cadena de formato.
(,) Separador de millar. En algunas configuraciones regionales, se utiliza un
punto como separador de millar. El separador de millar separa los millares
de las centenas en un nmero que tiene cuatro o ms lugares a la
izquierda del separador decimal. Se especifica el uso estndar del
separador de millar si el formato contiene un separador de millar rodeado
por los marcadores de posicin de dgitos (0 o #). Dos separadores de
millar adyacentes o un separador de millar inmediatamente a la izquierda
del separador decimal (aunque no se especifique un decimal) significa
"escalar el nmero dividindolo por 1000, redondendolo si es necesario".
Por ejemplo, puede utilizar la cadena de formato "##0,," para representar
100 millones como 100. Los nmeros menores que un milln se muestran
como 0. Dos separadores de millar adyacentes en cualquier posicin
diferente a la inmediatamente a la izquierda del separador decimal se
consideran simplemente como seal de que se est usando un separador
de millar. El carcter real utilizado como separador de millar en la salida
con formato depende del formato de nmero reconocido por el sistema.
(:) Separador de hora. En algunas configuraciones regionales se pueden
utilizar otros caracteres para representar el separador de hora. El
separador de hora separa horas, minutos y segundos cuando los valores
de hora tienen formato. El carcter real utilizado como separador de hora
en formato viene determinado por las configuraciones del sistema.
(/) Separador de fecha. En algunas configuraciones regionales se pueden
utilizar otros caracteres para representar el separador de fecha. El
separado de fecha separa el da, el mes y el ao cuando los valores de
fecha tienen formato. El carcter real utilizado como separador de fecha
en formato viene determinado por las configuraciones del sistema.
(E- E+ e- e+) Formato de notacin cientfica. Si la expresin de formato contiene al
menos un marcador de posicin de dgito(0 o #) a la derecha de E-, E+, e-
o e+, el nmero se muestra en formato cientfico y se inserta E o e entre
el nmero y su exponente. El nmero de marcadores de posicin de dgito
a la derecha determina el nmero de dgitos en el exponente. Utilice E- o
e- para colocar un signo menos junto a los exponentes negativos y E+ o
43

e+ para incluir un signo ms junto a los exponentes positivos.
- + $ ( ) Muestra un carcter literal. Para mostrar un carcter diferente a los
enumerados, escriba delante una barra inversa (\) o escrbalo entre
comillas dobles (" ").
(\) Muestra el carcter siguiente en la cadena de formato. Para mostrar un
carcter que tiene un significado especial como un carcter literal, escriba
delante barra inversa (\). La barra inversa propiamente dicha no se
muestra. Utilizar la barra inversa es igual que poner entre comillas dobles
el carcter siguiente. Para mostrar una barra inversa, utilice dos barras
inversas (\\).
Ejemplos de caracteres que no se pueden mostrar como caracteres
literales son los caracteres de formato de fecha y de hora (a, c, d, h, m, n,
p, q, s, t, w, y, / y :), los caracteres de formato numrico (#, 0, %, E, e,
coma y punto) y los caracteres de formato de cadena (@, &, <, > y !).
("ABC") Muestra la cadena que hay entre comillas dobles (" "). Para incluir una
cadena con formato desde el cdigo, debe utilizar Chr(34) para encerrar
el texto (34 es el cdigo de carcter para las comillas dobles (" ").












44

Right (Funcin)
Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del
lado derecho de una cadena.
Sintaxis
Right(string, lenght)
La sintaxis de la funcin Right tiene estos argumentos con nombre:
Parte Descripcin
string Requerido. Expresin de cadena desde la cual se devuelven los caracteres
que estn ms a la derecha. Si string contiene Null, se devuelve Null.
lenght Requerido, un tipo Variant (Long). Expresin numrica que indica cuntos
caracteres se van a devolver. Si es 0, se devuelve una cadena de longitud
cero (""). Si es mayor o igual al nmero de caracteres en string, se devuelve
la cadena completa.

Comentarios
Para determinar el nmero de caracteres en string, utilice la funcin Len.
Nota Utilice la funcin RightB con datos de byte incluidos en una cadena. En lugar de
especificar el nmero de caracteres para devolver, longitud especifica el nmero de
bytes.

También podría gustarte