You are on page 1of 10

Lenguaje Visual Basic for Applications

Guía básica de referencia*

Roddy Rivas-Llosa M.

Presentación

En este documento encontrará un apretado resumen de los elementos esenciales de programación en el lenguaje Visual
Basic for Applications incluido en el paquete Microsoft Office 97. Con el propósito de clarificar la exposición, se ha
dividido el texto en dos secciones. En la primera se ofrece un marco de referencia general sobre el entorno y las
características del lenguaje de programación. En la segunda, se presenta una síntesis de las principales estructuras
funcionales y comandos incorporados en el lenguaje. Cabe notar que esta guía de referencia se concentra, sin pretender
ser exhaustiva, en la interacción del lenguaje Visual Basic con la aplicación Microsoft Excel 97.

*
Nota para el lector: este material debe considerarse como un complemento y no un sustituto de los apuntes y asistencia a clases.
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

Primera parte
Aspectos generales del entorno y del lenguaje

1.1 Programación basada en macros, programación en código fuente y programación mixta

Con fines didácticos, distinguiremos tres aproximaciones o soluciones prácticas al problema de cómo crear
un programa en la computadora. Estos tres “estilos” se podrían denominar respectivamente grabación de
macros, programación de código fuente y programación mixta. Una breve reseña de los dos primeros y un
esquema intuitivo de la relación entre todos ellos se muestra en el cuadro siguiente.

CUADRO 1
LOS TRES ESTILOS DE PROGRAMACIÓN

Una macro es un programa autogenerado, que


representa una descripción fiel de la interacción
GRABACIÓN del usuario con la computadora durante un
DE MACROS lapso de tiempo denominado sesión de
grabación de la macro.
GENERA
AUTOMÁTICAMENTE
PROGRAMACIÓN
MIXTA
El código fuente es la expresión de un
CÓDIGO programa en el lenguaje de programación
FUENTE propiamente dicho. Para programar
directamente a este nivel se requiere conocer
las convenciones, sintaxis y comandos del

Cuando el usuario registra un conjunto de operaciones manuales mediante el menú Herramientas / Macro /
Grabar nueva macro..., la computadora crea una secuencia de comandos automáticamente y le asigna un
nombre a esta secuencia. El programa generado de esta forma se conoce como “macro” y puede ser
posteriormente ejecutado mediante el menú Herramientas / Macro / Macros..., asignándolo a un objeto (tal
como un botón de comando), a una combinación de teclas o invocándolo mediante su nombre desde otra
macro o subrutina.

Las instrucciones que conforman una macro son accesibles para su revisión y edición a través del entorno de
programación de Visual Basic, al que puede ingresarse mediante el menú Herramientas / Macro / Editor de
Visual Basic o haciendo click derecho con el mouse sobre una etiqueta de hoja y seleccionando Ver código.
Una vez dentro de este entorno, se deberán localizar los llamados “Módulos”, que funcionan como
contenedores de instrucciones. Cada módulo puede contener una gran cantidad de programas independientes,
ya sea subrutinas o funciones1.

Si el usuario ingresa al entorno Visual Basic y allí elabora el programa enteramente, entonces se puede decir
que ha llevado a cabo la programación en código fuente. En contraste, la técnica de programación mixta
consiste en grabar una macro base (“macro de ejemplo”), que en sí misma no será ejecutada. A partir de ella,
el usuario adapta la secuencia de comandos autogenerada por la computadora en código fuente a sus
necesidades específicas.

¿Cuál es la diferencia esencial entre la grabación de macros y la edición de código fuente? Ya que una macro
es autogenerada por la computadora a medida que el usuario realiza una tarea, este tipo de programas no

1
Una subrutina es un programa diseñado para funcionar activamente y es capaz de cambiar los contenidos de la hoja de cálculo. Por
su parte, una función es un programa diseñado para realizar cálculos y devolver un valor, normalmente dependiente de ciertos
parámetros.

2
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

puede contener estructuras lógicas. A diferencia de un programa elaborado a nivel de código fuente, una
macro carece del potencial para tomar decisiones, llevar a cabo repeticiones automáticamente o interactuar
con el usuario.

1.2 Módulos y formularios

Un proyecto de programación en Visual Basic se desarrolla en dos ámbitos: uno visual y otro operativo
(usualmente en este mismo orden). En el ámbito visual se crean ventanas que son utilizadas para interactuar
con el usuario. Estas ventanas son llamadas “formas” o “formularios” y contienen objetos de menor
jerarquía, tales como botones, textos estáticos, cuadros de texto, listas, opciones, marcos, imágenes, entre
otros. En el ámbito operativo, se crean “módulos” para contener las definiciones de variables, subrutinas y
funciones que llevarán a cabo los procesos y cálculos involucrados en el proyecto. Ambos, formularios y
módulos, se graban como parte integral del archivo XLS; aunque también es posible exportarlos como
archivos separados si se hace necesario.

Para crear una “forma” o “formulario” nuevo, debe ingresarse al entorno de programación de Visual Basic y
utilizar el menú Insertar / UserForm. Por su parte, para insertar un módulo para escribir programas en él, se
debe utilizar el menú Insertar / Módulo. Es importante no confundir los Módulos con los llamados Módulos
de clase, que no contienen subrutinas o funciones, sino que se utilizan para crear “objetos descendientes”,
una técnica refinada propia de la programación orientada a objetos.

1.3 Propiedades, métodos y eventos

Todo objeto (ya sea un formulario, un botón, una hoja de cálculo, etc.) tiene tres componentes esenciales:
propiedades, métodos y eventos. Las propiedades son piezas de información que se utilizan para
caracterizar al objeto. Considérese como ejemplo un formulario. Sus propiedades fundamentales podrían ser:
nombre interno (propiedad name), título (propiedad caption), posición (propiedades top y left), color de
fondo (propiedades backcolor y picture), tamaño (propiedades height y width) o tipo de letra (propiedad
font). Pero también puede contar con propiedades más específicas como tipo de borde o decoración.

Por su parte, los métodos son procedimientos que el usuario le ordena ejecutar al objeto. En el caso de un
formulario, por ejemplo, puede ordenársele mostrarse en la pantalla. A este método específico se le llama
Show y si el formulario se llamara internamente “MiVentana”, entonces el comando para mostrarlo sería
MiVentana.Show
El método complementario, que cierra un formulario, se llama UnLoad y se ordena así: Unload MiVentana
o, en caso de que la subrutina que lo invoca esté definida dentro del mismo formulario, se podría indicar
Unload Me

Finalmente, los eventos representan ocurrencias sobre un objeto. Así, cada vez que el usuario mueve el
puntero del ratón, presiona una tecla, abre o cierra una ventana, etc. , se “dispara” el evento correspondiente
para el objeto correspondiente. Cada evento se relaciona con una subrutina, que se activa automáticamente
cuando el evento ocurre. Por defecto, estas subrutinas (llamadas gestores de eventos) no contienen código
alguno. Al escribir código fuente dentro de los gestores de eventos, el usuario va añadiendo funcionalidad al
programa. Por ejemplo, si se desea programar qué debe ocurrir cuando el usuario presione un determinado
botón, en el entorno de diseño se deberá dar doble click a dicho objeto y seleccionar luego el evento Click en
la lista desplegable derecha del editor de código, donde se indican todos los eventos que es posible
interceptar. En el procedimiento que aparecerá de inmediato podrán escribirse los comandos que se desea
ejecutar al ocurrir el evento.

1.4 El proceso de desarrollo de una aplicación

Típicamente, se debe iniciar todo proyecto haciendo un boceto del producto finalmente deseado, tratando de
responder a las siguientes preguntas: ¿qué características debe tener? ¿Qué información utiliza? ¿Qué
resultados genera? Y ¿cómo puede llegar a esos resultados?

Es recomendable iniciar un proyecto de programación por la fase visual: creando las ventanas que
constituirán la interfaz con el usuario. Muchas veces este tiempo invertido en el desarrollo del aspecto

3
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

estético contribuye a que el programador clarifique sus propias ideas sobre el funcionamiento del programa.
El resultado final de esta etapa debe ser un “prototipo no funcional”, es decir, un programa que se ve como
se debe ver el sistema final, pero no realiza ninguna operación compleja, salvo tal vez abrir o cerrar ventanas,
ya que los gestores de eventos de sus objetos se encuentran aún vacíos.

La segunda etapa podría abordar los problemas más elementales de funcionamiento, tales como colocar
botones en la hoja de cálculo para llamar a la ventana principal del programa y crear una macro de
autoejecución para que el programa principal se active al abrir el archivo XLS.

En una tercera etapa, el programador podría concentrarse en declarar las variables globales y escribir las
subrutinas y funciones de uso general. Para esto es necesario crear un módulo si el proyecto todavía no
tuviera uno. Normalmente estas rutinas se utilizan para recoger información general de la hoja de cálculo
(contar datos y verificar la presencia de errores, por ejemplo) o definir funciones del usuario.

Como cuarta etapa se puede llevar a cabo la fase esencial de la programación mixta, es decir, la grabación de
macros de ejemplo. Aquí el programador deberá tener cuidado en respetar tanto como le sea posible las
condiciones iniciales y finales al grabar cada macro2 y efectuar sólo las interacciones indispensables con la
computadora durante la grabación3.

Una vez grabadas las macros de ejemplo, la quinta etapa consiste en readaptarlas para cubrir las necesidades
del proyecto específico y escribir nuevas rutinas que no puedan ser ejemplificadas a través de macros. Esta
es posiblemente la fase más exigente de todo el proceso, ya que el programador se ve obligado a mantener
una idea clara del proyecto en su totalidad. Resulta óptimo que, de ser posible, la quinta etapa la lleve a cabo
un mismo equipo de personas en un solo período de tiempo continuo. No obstante, cuando el proyecto
resulta demasiado complejo, se hace necesario dividir el esfuerzo en varias sesiones. Por este motivo se
recomienda que esta etapa se desarrolle consultando permanentemente el boceto y manteniendo apuntes
sobre los nombres y tipos de variables creadas, las relaciones entre formularios y las celdas clave en las hojas
de cálculo para no perder de vista la estructura interna del programa.

La sexta y última etapa del proceso de creación de una aplicación se denomina depuración (debugging). Esta
fase consiste en llevar a cabo pruebas sobre el programa. Las pruebas deben tratar de ser tan exigentes como
sea posible, considerando casos extremos y atípicos, tales como la ejecución de la aplicación en una
computadora configurada con otros separadores decimales, zona horaria, tipo de video, tamaño de monitor,
etc. Es recomendable que una de las personas que prueba la aplicación no esté familiarizada con ella. Un
usuario sin experiencia puede cometer algunos errores valiosos, ya que le permitirán al programador evaluar
la robustez del programa ante situaciones imprevistas. La sexta etapa concluye con la corrección de los
problemas detectados y la comprobación del funcionamiento de la aplicación corregida4.

2
En la práctica, esto se traduce en prestar mucha atención a la posición del cursor y la hoja activa antes de empezar a grabar y justo
antes de terminar de grabar cada macro. Estas posiciones no deben dejarse al azar. El programador debe estar consciente de ellas
en todo momento, ya que de otro modo pueden ocasionar errores imprevistos.
3
Además, al utilizar la técnica de programación mixta se debe tener en cuenta que no todas las macros grabadas pueden ser
ejecutadas. En particular, algunas macros que operan sobre elementos gráficos como ejes y líneas de división no pueden ejecutarse,
ya que contienen errores al grabarse (este es un problema localizado dentro de MS Excel 97). Las únicas alternativas son corregir
manualmente el código fuente que contiene tales errores u optar por crear una nueva macro que utilice otro método operativo.
4
Al tratarse de aplicaciones críticas, se distingue una etapa adicional, conocida como optimización. En esta fase se mide la velocidad
de ejecución, la precisión, claridad y tamaño del programa, adaptando el código fuente para hacerlo lo más eficiente y compacto
posible. Todas las etapas anteriormente tratadas se acompañan de un proceso permanente de documentación, en el que se detalla el
funcionamiento del programa, tanto para el usuario como para otros programadores.

4
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

Segunda parte
Estructuras funcionales y comandos básicos del lenguaje

2.1 Funciones fundamentales de interacción con la hoja de cálculo

[Dirección]
Se refiere al valor de una celda específica en la hoja activa5.
Ejemplos:
[a1] = 10
[b9] = “Probando...”

Range(“Dirección”) o Range(“NombreDeRango”)
Se refiere a un rango específico (puede ser una celda o grupo de celdas)6.
Ejemplos:
Range(“A1”) = 2 ó Range(“A1”).Value = 2
Range(“A11:C22”) = “X” o Range(“A11:C22”).Value = “X”
Range(“B9:C15”).Formula = “=Aleatorio()”
Range(“D11”).ClearContents
Range(“C20”).Copy

Offset(numFilas, numColumnas)
Es una propiedad del objeto Range. Se refiere a un rango que se encuentra tantas filas y columnas hacia
abajo y a la derecha a partir del rango original como lo indican los parámetros de la propiedad.
Ejemplo:
Range(“B9”).Offset(3,1).Select
x = Sheets(“Datos”).Range(“C14”).Offset(i,j)
ActiveCell.Offset(3,2)=[A8].Offset(3,9)

Sheets(“Hoja”)
Se refiere a una hoja de cálculo del libro activo.
Ejemplos:
Sheets(“Hoja1”).Select
Sheets(“Hoja1”).Range(“B9”).Clear

Workbooks(“Libro”)
Se refiere a un libro de cálculo abierto.
Uso típico:
Workbooks(“Libro1”).Activate

2.2 Tipos de datos

Existen 13 tipos de datos incorporados en el lenguaje Visual Basic for Applications7. Sin embargo, los tipos
básicos son seis: integer, long, double, string, boolean y range. Ellos contienen, respectivamente, números
enteros cortor, enteros largos, reales, textos, valores lógicos y rangos de celdas.

Para declarar una variable se utiliza la palabra reservada DIM, seguida del nombre de la variable, la palabra
reservada AS y el nombre del tipo de variable8.
5
Aunque, en general, se prefiere la sintaxis Range a la sintaxis [ ] para gestionar información de la hoja de cálculo, ya que la
nomenclatura [ ] requiere el cumplimiento de ciertas precondiciones para operar correctamente.
6
Nótese que al omitir el nombre de la propiedad de un rango se interpreta por defecto como la propiedad Value.
7
El usuario puede crear tipos adicionales, además de arreglos (“matrices”) basadas en datos de cualquier tipo.
8
También se puede utilizar la palabra GLOBAL dentro de la zona de declaraciones de un módulo para que el ámbito de la variable se
extienda a todo el proyecto y no solamente al módulo en el que se declara (esta técnica es comúnmente utilizada para compartir
información entre distintas formas y módulos).

5
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

Debe evitarse el uso de nombres con tildes, espacios o caracteres internacionales. Los nombres de variables o
rutinas deben comenzar siempre por una letra y no deben entrar en conflicto con los nombres reservados del
lenguaje o nombres de objetos previamente definidos (es decir, deben ser únicos). Asimismo, debe
considerarse que este lenguaje no distingue entre letras mayúsculas y minúsculas respecto al nombre de
variables (para el contenido de variables de tipo texto sí hace distinción).
Ejemplos:
Dim I as Integer
Dim X,Y,Z as Double, S as String, OtraVariable as Boolean, Var123 as Double
Global NombreUsuario as String, NivelDeAcceso as integer

2.3 Subrutinas

Las subrutinas se declaran mediante la palabra reservada SUB, seguida del nombre de la subrutina y,
opcionalmente (entre paréntesis) la lista de argumentos y sus tipos. Las subrutinas no devuelven ningún valor
como respuesta, sino que se utilizan para ejecutar comandos que normalmente alteran la visualización, el
contenido o el formato de la hoja de cálculo9.

Ejemplos:
SUB CreaInforme()
...
END SUB

SUB CreaInformeMes( MesDelInforme AS Integer )


...
END SUB

Préstese especial atención al emparejamiento de las cláusulas de apertura y cierre. Si existiese un SUB o un
END SUB de más, la computadora se negaría a ejecutar cualquier porción del programa.
Ejemplo10:
SUB EstoEstaMal()
...
END SUB

END SUB ‘Este comando está de más

Nota importante: en caso de encontrarse un error en el código fuente, el programa resaltará con color
amarillo la línea de código identificable más cercana al error y la computadora entrará en un estado llamado
“modo de interrupción”. Antes de realizar cualquier corrección o ejecutar nuevamente el programa, debe
detenerse la ejecución y salir del modo de interrupción, presionando el botón de “detener” (el cuadrado azul
en la barra superior de herramientas) en el entorno de Visual Basic.

2.4 Funciones

Las funciones se declaran mediante la palabra reservada FUNCTION, seguida del nombre de la función,
entre paréntesis la lista de argumentos y sus tipos, si los tuviese, y el tipo de valor de salida. Dentro del
cuerpo de la función se debe incluir una línea de asignación de resultado, que asigne valor a una variable
implícitamente declarada con el mismo nombre y tipo devuelto por la función.

Ejemplos:
FUNCTION SinParametros() AS Integer
...
SinParametros = 1 ‘Aquí se asigna la respuesta

9
Para ejecutar una subrutina desde otra subrutina o función basta colocar su nombre como si fuera un comando incorporado. En caso
de tener argumentos, éstos se separan del nombre con un espacio y entre sí con comas (P.Ej. CreaOtroInforme 2,”Enero”,3 )
10
Nótese el uso del apóstrofe como indicador de que todo el texto que sigue en dicha línea es un comentario, que no ha de ser
ejecutado por la computadora.

6
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

END FUNCTION

FUNCTION ConParametros( x, y AS Integer, S AS String ) AS String


...
ConParametros = “El resultado es ” & (x+y)
END FUNCTION

2.5 Bucles y repeticiones

Los Bucles o repeticiones funcionan como estructuras de automatización. Cuando el lenguaje encuentre estas
estructuras, repetirá un fragmento de código tantas veces como lo indique el usuario o mientras se cumpla
una condición lógica. Los bucles propiamente dichos se expresan mediante las palabras reservadas
FOR...TO...STEP...NEXT, mientras que las repeticiones (abiertas) se ingresan mediante la palabra reservada
DO WHILE...LOOP.

Ejemplos11:
DIM i, j, k AS INTEGER
FOR i = 1 TO 100 STEP 2
Range(“A1”).Offset(i,0) = i ^ 2
NEXT i

i=0
DO WHILE i < 100
Range(“A1”).Offset(i,0) = i
i = i + Range(“A1”).Offset(i,1) + 1
LOOP

‘ Ejemplo de bucles anidados (bucles dentro de otros bucles)


FOR i = 1 TO 100
FOR j = 1 TO ActiveSheet.Range(“K11”)
FOR k = 1 TO 5
...
NEXT k
NEXT j
NEXT i

2.6 Condicionales

Las estructuras condicionales se utilizan para programar la toma de decisiones en medio del programa. Las
formas básicas del condicional son dos: la forma corta y la forma larga. En ambos casos, las palabras
reservadas son IF...THEN...ELSE. En la forma larga, aparece la palabra ENDIF como cierre de la cláusula.

Ejemplos12:
IF x>0 THEN i = i + 1 ELSE q = r / 2

IF x>0 THEN
i=i+1
k=k*7
ELSE
i=i–1
k=k\7
ENDIF

11
Nótese que si en el segundo ejemplo no se incrementara el valor de la variable i la repetición nunca concluiría. De hecho, no es
posible saber a priori si esta repetición concluirá o no (si la celda B1 contuviera un –1 la repetición continuaría indefinidamente). En
estos casos, cuando se hace necesario detener la ejecución de un programa, basta presionar la combinación de teclas CTRL-Pausa.
12
Véase en el segundo ejemplo el uso del operador \ (backslash). Cuando se utiliza este operador en lugar del operador / de división,
la división se realiza considerando sólo resultados enteros. Así, mientras que 8 / 3 = 2.6667, 8 \ 3 = 2.

7
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

2.7 Selección de casos

Esta estructura se utiliza para indicar a la computadora que tome una decisión en función del valor de una
variable o expresión. Las palabras reservadas son SELECT CASE... CASE... END SELECT. Puede
considerarse el SELECT CASE como una aplicación especializada de los condicionales.

Ejemplo:
SELECT CASE x
CASE 1
S = “X tomó el valor 1”
j=j+1
Range(“A1”).Offset(1,j) = [B20]
CASE 2
S = “X tomó el valor 2”
CASE 3
S = “X tomó el valor 3”
CASE ELSE
S = “X tomó un valor a partir de cuatro”
END SELECT

En el ejemplo, la variable S toma distintos valores según el contenido de la variable x. Además, en caso de
que x sea igual a la unidad, se llevan a cabo dos procesos adicionales (esto ilustra cómo pueden incluirse
varias líneas de código fuente dentro de cada una de las instrucciones CASE, tal como sucede en la versión
larga de una cláusula condicional).

2.8 Principales funciones de uso general incorporadas en el lenguaje

LEN(Texto)
Devuelve el número de caracteres de un texto. Es equivalente a la función LARGO(Texto) en Excel.

MID(Texto, Inicio, Número de caracteres)


Extrae una subcadena de texto a partir del carácter en la posición Inicio. Es equivalente a la función
EXTRAE(Texto, Inicio, Número de caracteres) en Excel.

VAL(Texto)
Convierte un texto a su valor numérico.

STR$(Número)
Convierte un número a su equivalente en texto.

ASC(Carácter)
Devuelve el código ASCII del carácter especificado (ASC(“A”) devuelve el número 65). Esta función se
utiliza en conjunto con la siguiente (ver a continuación el ejemplo).

CHR$(Código de carácter)
Devuelve el carácter que corresponde al código ASCII indicado (CHR$(65) corresponde a la letra “A”)
Ejemplo:
Dim NumFila , NumColumna as Integer
Dim Rango as String
NumFila = 10
NumColumna = 16
Rango = “A1:” & CHR$(65+NumColumna-1) & NumFila
Range(Rango).ClearContents

8
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

En este ejemplo, se desea borrar el rango rectangular que comprende las 10 primeras filas y las 16 primeras
columnas (A1:P10). ¿Cómo saber que la letra de la columna 16 es la “P”? La función CHR$ convierte el
número 16 en la letra adecuada. Nótese el uso del operador de concatenación “&”.

INT(Número)
Redondea un número al menor entero relativo más próximo.
Ejemplo:
INT(8.99) devuelve 8
INT(-8.01) devuelve –9

RND
Devuelve un número pseudo-aleatorio Z tal que 0 <= Z < 1
Ejemplo:
INT(RND*100+1)

El ejemplo muestra cómo extraer un número aleatorio entero entre 1 y 100.

LOG(Número positivo)
Devuelve el logaritmo natural de un número positivo.

EXP(Número)
Devuelve el antilogaritmo natural de un número. (Debe tenerse precaución pare evitar los errores de
desbordamiento si se intenta antilogaritmar un número de magnitud muy grande).

2.9 Síntesis de propiedades, eventos y métodos importantes asociadas a objetos

Propiedad Visible del objeto Image dentro de un formulario


Esta propiedad toma valores True o False y controla si una imagen es visible para el usuario o no.

Propiedad Value del objeto OptionButton dentro de un formulario


Esta propiedad toma valores True o False e indica si una opción dentro de un grupo de opciones está
marcada o no.

Propiedad Enabled del objeto OptionButton dentro de un formulario


Esta propiedad toma valores True o False e indica si una opción dentro de un grupo de opciones es
accesible al usuario o no (cuando no está accesible se muestra de color plomizo claro y no es posible
marcarla con el mouse ni con el teclado).

Propiedad Visible de una Hoja dentro de la categoría Microsoft Excel Objetos


Esta propiedad permite establecer si la hoja será visible (valor –1), estará oculta (valor 0) o será realmente
invisible (valor –2). En este último caso, el usuario no podrá verla salvo que cambie este propiedad, pero
sólo se podrá cambiar desde el entorno Visual Basic. Si, a la vez, el usuario coloca una clave de acceso al
proyecto Visual Basic, entonces estas hojas sólo podrán hacerse visibles a través de una macro, que podrá
controlar la autorización del usuario para ver su contenido.

Propiedad ListIndex del objeto ListBox dentro de un formulario


Esta propiedad indica el ordinal del elemento seleccionado – 1. Así, si se selecciona el primer elemento de
una lista llamada Lista1, entonces Lista1.ListIndex vale cero. Si se seleccionara el segundo elemento, esta
propiedad valdría 1 y así sucesivamente. De no haberse seleccionado ningún elemento, ListIndex toma el
valor –1.
Habitualmente esta propiedad se utiliza en conjunción con el evento Click del propio ListBox o de un botón
de comando.

Propiedad PassWordChar del objeto TextBox dentro de un formulario


Esta propiedad se fija en un carácter (por ejemplo, un asterisco) o se deja en blanco. Si no está en blanco,
entonces lo que el usuario ingrese en el TextBox se ocultará, siendo todos los caracteres reemplazados por
el símbolo que esté registrado en esta propiedad.

9
Seminario de Informática Avanzada Lenguaje Visual Basic for Applications – Guía de referencia

Propiedad Text del objeto TextBox dentro de un formulario


Los objetos de clase TextBox utilizan esta propiedad para registrar el texto que contienen en todo momento,
en lugar de la propiedad Caption usual para este propósito. Esto se debe a que, a diferencia de la propiedad
Caption, la propiedad Text puede ser cambiada por el usuario en tiempo de ejecución, al llenar el TextBox
con un texto.

Método Clear del objeto ListBox dentro de un formulario


Este método se invoca para borrar el contenido de una lista de valores

Método AddItem del objeto ListBox dentro de un formulario


Este método se invoca para añadir un elemento al final de una lista de valores
Ejemplo:
ListBox1.Clear
FOR i = 1 TO CuentaVariables
ListBox1.AddItem Range(“A1”).Offset(i-1,0)
NEXT i

Evento SheetActivate del objeto Workbook dentro de “Este libro”


Este evento se activa cuando el usuario hace click en una de las tarjetas con nombre de hoja en la parte
inferior de la pantalla de Excel. La hoja activada se transfiere como un parámetro de la subrutina llamado
“Sh”. Para saber el nombre de la hoja activada debe refererirse al objeto Sh.Name.
Ejemplo:
Private Sub WorkBook_SheetActivate(ByVal Sh As Object)
If Sh.Name=“Hoja1” then MuestraPantallaPrincipal
End Sub

Evento MouseMove del objeto Image dentro de un formulario y del formulario mismo
Este evento se activa cada vez que el usuario mueve el puntero del mouse sobre un objeto imagen o el fondo
del formulario.

Evento Initialize del objeto formulario


Este evento ocurre justamente antes de que el formulario se presente en la pantalla. Habitualmente se utiliza
esta subrutina para inicializar valores de variables o colocar el contenido de los objetos del formulario si es
necesario.

Lima, Junio de 1999

10

You might also like