Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Visual Basic para Aplicaciones VBA PDF
Visual Basic para Aplicaciones VBA PDF
Tabla de contenido
Clase 1 - Mdulos ............................................................................................................................................... 4
Insertar .......................................................................................................................................................... 4
Renombrar .................................................................................................................................................... 5
Eliminar.......................................................................................................................................................... 6
Procedimientos .................................................................................................................................................. 7
Objetos y Colecciones ........................................................................................................................................ 9
Objetos .......................................................................................................................................................... 9
Colecciones.................................................................................................................................................. 10
Referencias a Objetos ...................................................................................................................................... 11
Clase 2 - Propiedades y Mtodos..................................................................................................................... 12
Propiedades................................................................................................................................................. 12
Mtodos ...................................................................................................................................................... 13
Comment ......................................................................................................................................................... 15
El Objeto Comment en Excel ....................................................................................................................... 15
Propiedades del Objeto Comment .............................................................................................................. 16
Mtodos del Objeto Comment ................................................................................................................... 16
La coleccin del Objeto Comment .............................................................................................................. 17
Ejemplo del mtodo Text del Objeto Comments .................................................................................... 17
Ejemplo de la propiedad Count del Objeto Comments ........................................................................... 18
Ejemplo de la propiedad Parent del Objeto Comments .......................................................................... 18
Ejemplo del recorrido de todos los comentarios del Objeto Comment ..................................................... 19
Comment como una propiedad del Objeto Range ..................................................................................... 20
Objetos dentro de un Objeto Comment ..................................................................................................... 21
Mensaje de error cuando no hay un comentario en la celda y cmo resolverlo ...................................... 22
Caso prctico 1 Buscar comentarios ............................................................................................................. 23
Qu usaremos ............................................................................................................................................. 23
Escribimos cdigo ........................................................................................................................................ 26
Clase 3 Obtener un Objeto Range................................................................................................................. 32
Concepto clave Maneras de obtener un Objeto Range ........................................................................... 32
Objeto Range que se genera empleando la Propiedad Range ................................................................... 32
Sobre un Objeto Worksheet ................................................................................................................................... 33
Sobre un Objeto Range ........................................................................................................................................... 34
Comentarios ................................................................................................................................................ 38
Variables ...................................................................................................................................................... 39
Tipos de datos de las variables ............................................................................................................................... 39
Reglas para los nombres de las Variables ............................................................................................................... 40
Declaracin de variables ......................................................................................................................................... 41
Declarar una variable normal genricamente ........................................................................................................ 42
Clase 1 - Mdulos
Para RENOMBRAR un mdulo debemos seleccionar el mdulo y tener abierto la ventana de Propiedades:
Procedimientos
En la funcin se devuelve un NICO valor en una variable que tiene el MISMO NOMBRE que la funcin. Se
puede llamar desde otro procedimiento
En la subrutina puede haber varias variables.
Creamos un mdulo llamado Procedimientos y dentro de l escribimos nuestros dos procedimientos del
ejemplo:
La ventana Inmediato (Ctrl-G), permite ejecutar directamente funciones Visual Basic, probar instrucciones y
depurar cdigo. Los procedimientos se prueban escribiendo su nombre y las funciones hay que escribir ?
seguido del nombre de la funcin con los parmetros que se le asocia:
Objetos y Colecciones
Los objetos estn organizados en jerarqua, Un LIBRO contiene varias HOJAS y cada hoja puede contener
grficos, rango de datos, tablas dinmicas, Los objetos en Excel (VBA) son cosas. Una celda es un
objeto, una hoja es un objeto, un libro es un objeto y de esta manera existen muchos ms objetos
en Excel. A esto lo conocemos como el modelo de objetos de Excel.
Referencias a Objetos
En una hoja de clculo el valor de una celda es una propiedad y podemos cambiar su valor y tambin
mostrarlo, a continuacin el procedimiento VBA:
Los mtodos son las actividades o acciones que el objeto puede realizar. Siguiendo con el ejemplo
de una persona, si fuera un objeto de Excel sus mtodos seran correr, caminar, hablar, dormir. Los
objetos de Excel se comportan de la misma manera que el ejemplo de una persona. Una celda
(Range) tiene los mtodos activar (Activate), calcular (Calculate), borrar (Clear) entre muchos ms.
Ejemplo:
En la hoja de clculo
En VBA
Cuando se ejecuta el
procedimiento, la
hoja de clculo
queda as:
Ejemplo:
En VBA
Comment
En Excel
Emplea el mtodo Clear del control cuadro de lista para limpiar el contenido
Verificamos si la coleccin Comments de la HOJA ACTIVA (es genrico, no especifica una hoja
en particular) est vaca y en caso de afirmacin enviamos un cuadro de mensaje indicando
tal hecho.
Este mensaje presentar un solo botn, el de Aceptar dado por el parmetro vbOKonly
El parmetro vbInformation es utilizado para mandar un mensaje informativo.
Se inicializan las variables con valores vacos y 0 para borrar el contenido de las variables.
For Each Next Sirve para recorrer TODOS los comentarios de la hoja de clculo activa.
Se le asigna a una variable el contenido del comentario, utilizamos el mtodo Text del Objeto
Comment que est asignado en este momento a la variable Comentario que devuelve el
contenido de texto de cada comentario de la hoja activa
Se emplea la funcin InSTR que tiene como parmetros lo que se busca y en dnde se busca,
retorna la posicin del carcter en dnde fue encontrado el texto a buscar, es decir, si se
devuelve un nmero >= 1 quiere decir que se ha encontrado.
Sumamos uno a la variable que nos permite recorrer las filas del control de lista.
Volvemos a inicializar la variable del texto que se busca antes de proceder a repetir el ciclo.
Para enganchar los procedimientos escritos a los controles de los botones de comandos del formulario,
debemos estar pendiente de elegir el evento apropiado:
cmdBuscar, cmdLimpiar y cmdSalir son los nombres de los 3 botones de comando que tenemos en nuestro
formulario, click es el evento.
Los procedimientos BotonBuscar y LimpiarFormulario son los procedimientos a los que hemos escrito el
cdigo.
Ahora debemos asignar las macros a los rectngulos o botones que hemos colocado en nuestras hojas de
clculo para que cuando se realice clic sobre ellos se ejecuten los cdigos programados, para ello realizamos
clic derecho sobre cada uno y elegimos la opcin Asignar macro:
Visual Basic para Aplicaciones utiliza las propiedades por defecto de cada objeto cuando no se indican, por
ejemplo asume el Libro de trabajo activo ActiveWorkbook, la Hoja activa ActiveSheet y la propiedad Value
porque el objeto que se crear es de tipo Range y ese es la propiedad por defecto.
La segunda sintaxis define un rango de celdas dados por los parmetros Cell1 que representa la celda de la
parte superior izquierda del rango y Cell2 que representa la celda de la parte inferior derecha del mismo
rango. Hay dos pares de comillas, una para cada celda extremo del rango:
Segunda sintaxis
Tiene un nico argumento: ndice de fila. Tiene un nico argumento, el nmero mximo es el total de celdas
que existen en una hoja de clculo de Excel, comienza desde la celda A1 y sigue hacia la derecha y despus
contina hacia la siguiente fila.
Se le asigna una cadena de texto a la celda K2
El ndice 1 representara a la celda A1 de una hoja de
clculo, por lo tanto en el rango que se muestra tomamos
a K3 como el origen y se le asigna el nmero 456
Tercera sintaxis
Devuelve TODAS las celdas de la hoja o del rango a la cual se hace referencia, por lo tanto el Objeto Range
devuelto es un rango con mltiples celdas.
Se borra el contenido del rango A1 hasta E9
Se borran el contenido de TODAS las celdas
Los argumentos pueden ser positivos o negativos. Lo que se trata es que se avanza o retrocede en filas y/o
columnas segn los valores.
A partir de la celda C2 se avanza tres filas hacia abajo y
dos columnas a la derecha E5
Comentarios
Declaracin de variables
Inicializacin de variables
Bucle
Instruccin de asignacin
Fin del bucle
Funcin interna
Declaracin de variables
mbito Local
En los mbitos locales, Visual Basic borra la memoria cuando se finaliza cada procedimiento y las variables
se destruyen, por eso se puede declarar el mimo nombre de variable en distintos procedimientos.
Cuando se declara una variable con la palabra clave Static en vez de Dim no se
destruye su informacin cuando el procedimiento acaba.
A nivel de un mdulo
Pblica
Se declaran las variables al inicio de cualquier mdulo del proyecto y antes del procedimiento, se declaran
una sola vez y estarn disponibles en todos los procedimientos y mdulos y lo hacen a travs de la instruccin
Public. Pierden su valor cuando se interrumpe bruscamente un procedimiento por un error o es forzado a
finalizar por una instruccin.
Mdulos estndar
Constantes locales
Se declara localmente
Retorno de carro
Constantes pblicas
xlEdgeTop, xlDashDot son constantes internas que definen el borde superior y el tipo de lnea de una celda
o rango de celdas.
16
1
2
32
256
4
8
64
512
0
Parmetros
Prompt
Obligatorio. Expresin de tipo String que se muestra como mensaje en el cuadro de dilogo. La longitud
mxima de Prompt es de aproximadamente 1024 caracteres, segn el ancho de los caracteres utilizados.
Si Prompt consta de ms de una lnea, puede separar las lneas mediante un carcter de retorno de carro
(Chr(13)), un carcter de avance de lnea (Chr(10)) o una combinacin de caracteres de retorno de carro/avance
de lnea (Chr(13) y Chr(10)) entre cada lnea.
Buttons
Opcional. Expresin numrica que corresponde a la suma de los valores que especifican el nmero y tipo de
botones que se han de mostrar, el estilo de icono que se va a usar, la identificacin del botn predeterminado
y la modalidad del cuadro de mensaje. Si se omite Buttons, el valor predeterminado ser cero.
Title
Opcional. Expresin de tipo String que se muestra en la barra de ttulo del cuadro de dilogo. Si se omite Title,
en la barra de ttulo aparecer el nombre de la aplicacin.
Valores
En la siguiente tabla se incluyen los valores de enumeracin de MsgBoxStyle:
Miembro
Valor
Descripcin
OKOnly
OKCancel
AbortRetryIgnore
YesNoCancel
YesNo
RetryCancel
Critical
16
Question
32
Exclamation
48
Information
64
DefaultButton1
DefaultButton2
256
DefaultButton3
512
ApplicationModal
SystemModal
4096
MsgBoxSetForeground
65536
MsgBoxRight
524288
MsgBoxRtlReading
1048576
Especifica que el texto debe aparecer para ser ledo de derecha a izquierda
en los sistemas rabe y hebreo.
El primer grupo de valores (0-5) describe el nmero y tipo de botones mostrados en el cuadro de dilogo. El segundo
grupo (16, 32, 48, 64) describe el estilo de icono. El tercer grupo (0, 256, 512) determina qu botn es el valor
predeterminado. El cuarto grupo (0, 4096) determina la modalidad del cuadro de mensaje y el quinto grupo especifica
si el cuadro de mensaje es la ventana de primer plano, junto con la alineacin y la direccin del texto. A la hora de sumar
nmeros para crear el valor final del argumento Buttons, se deber utilizar nicamente un nmero de cada grupo.
Valor devuelto
Constante
Valor
OK
Cancel
Abort
Retry
Ignore
Yes
No
Trabajar con variables declaradas tipo Date nos permite realizar operaciones como conocer el nmero de
das que hay entre dos fechas. Tambin se almacena informacin que tiene que ver con el tiempo: horas,
minutos y segundos.
celda D4
Por la forma en que se resuelven las operaciones debemos poner entre parntesis el nmero
negativo para que se resuelva primero
Declaracin
Los
lmites
de
almacenamiento de un
arreglo es lo que
especifica el ndice + 1,
es decir, el ndice
determina el lmite
superior y el inferior
siempre ser 0 si no es
especificado.
La forma ms eficiente de trabajar con Vectores y Matrices es desde luego declarndolos dinmicamente, con esto se
tendr la plena seguridad de que solo se utilizar los recursos necesarios del sistema a la hora de implementar los
Arreglos en su cdigo. Adems, las funciones que aqu se presentan potencian en gran medida el trabajo con Arreglos.
Volvemos a redimensionar el
vector, ahora con ms
posiciones.
Las variables de objeto permiten reducir la cantidad de cdigo que hay que escribir. Podra abreviar el segmento de
cdigo utilizando una variable de objeto para el control, con lo que aumentara la rapidez de su ejecucin. Es conveniente
que se declare la variable de objeto con la clase especfica que se desea asignar. Una vez que se haya asignado un objeto
a la variable, se podr tratar exactamente igual que el objeto al que se hace referencia. Puede establecer o recuperar las
propiedades del objeto o utilizar cualquiera de sus mtodos.
La instruccin Nothing indica que la variable de objeto ya no est vinculado a ningn objeto, o lo que es lo
mismo, interrumpe su asociacin y se liberan todos los recursos del Sistema y de Memoria que se haban
asociados.
La instruccin New le indica a visual basic que debe crear un nuevo objeto y asignarlo a la variable de objeto
que se hace referencia.
Un objeto Collection de Visual Basic es un conjunto ordenado de elementos a los que se puede hacer
referencia como unidad. Se puede ver de manera sencilla a un grupo relacionado de elementos como si se
tratase de un solo objeto. Los elementos de una coleccin nicamente necesitan estar relacionados por el
hecho de estar ubicados en la coleccin. Los elementos de una coleccin no tienen que compartir el mismo
tipo de datos.
object.Remove({Index | Key})
El argumento Index es la posicin del elemento que desea eliminar. El argumento Key es la misma cadena que ha
utilizado para agregar el elemento a la coleccin. Si la clave del tercer elemento de una coleccin es "W017493",
puede utilizar cualquiera de las dos instrucciones siguientes para eliminarlo.
workOrders.Remove(3)
workOrders.Remove("W017493")
woCurrent = workOrders.Item(3)
woCurrent = workOrders.Item("W017493")
Declaracin y uso
Ubound(Cliente) funcin para extraer el lmite superior de la variable-vector Cliente y pasarlo como
argumento al lmite superior de la construccin del bucle.
Llamar a una funcin de hoja de clculo desde Visual Basic Funciones no equivalentes
En Visual Basic, las funciones de hoja de clculo de Microsoft Excel pueden ejecutarse mediante el objeto
WorksheetFunction. Hay que definir primero el rango con una instruccin Set y luego colocar la funcin
usando Application.WorksheetFunction
El siguiente procedimiento usa la funcin Min para obtener el valor ms pequeo de un rango de celdas.
Copia el contenido de
la celda padre del
comentario a la celda
ubicada 2 celdas a la
izquierda.
Cambia color de
fondo
Cambia contorno
Y si se encuentra el
strring F10 en el
contenido del
comentario para el
ciclo.
Forma Lineal
Forma de Bloque