Sei sulla pagina 1di 93

Desarrollo de Aplicaciones con VBA

SILABO DE DESARROLLO DE APLICACIONES EN VBA

I. INFORMACION GENERAL
1. Pre-requisito: Excel Avanzado
2. Duracin: 24 Horas Pedaggicas (50min /Hora)
3. Metodologa: Teora 10% Practica 90%

II. OBJETIVOS
Crear macros usando el grabador de macros o usando el editor VBA
Crear funciones
Entender la teora de objetos
Hacer uso de los Userforms
Dominar la tcnica de programacin con VBA, siendo capaz de manejar una hoja de
clculo utilizando VBA

III. UNIDADES TEMTICAS


Sesin 1
Editor de visual Basic
Descripcin del Editor de visual Basic
Ventanas de proyectos
Procedimientos y principios fundamentales
Macros
Crear una macro (procedimiento sub)
Seguridad de macros
Guardar archivos con macros
Programar en el Editor de Visual Basic
El objeto contenedor y el contenido
Uso de los objetos, propiedades y mtodos
Uso de la instruccin with
Objetos predeterminados
Objeto range
Cells
Consejos para la escritura del cdigo
Comentarios
Caracteres de continuacin
Aadir sangras
Nombres de procedimientos, variables y constantes.

Universidad Nacional de Ingeniera Pg. 2


Desarrollo de Aplicaciones con VBA

Sesin 2
Msgbox
Inputbox
Informacin en lneas
Errores de macros
Errores de digitacin
Variables no declaradas
Corregir errores
Depurar lneas de cdigo
Variables
Declarar variables a objetos
Reglas
Tipos de variables
Programacin bsica

Sesin 3
Controles de formulario
Tipos de controles de formulario
Controles ActiveX
Propiedades de los controles ActiveX
Control cuadro de texto
Control cuadro de lista
Control cuadro combinado
Control casilla de verificacin
Control botn de opcin
Formularios en Vba
Mostrar/ocultar cuadro de herramientas
Controles del cuadro de herramientas
Diseo de un formulario
Cambiar nombres a los controles
Abrir formularios desde la hoja de clculo
Programando controles de formulario

Sesin 4
Estructuras de decisin
If then else
If then
If...then...else
If...then...elseif
If and
If or
Select case
Case is
Case to
Delimitar valores
Declarando variables

Universidad Nacional de Ingeniera Pg. 3


Desarrollo de Aplicaciones con VBA

Sesin 5
Bucles de repeticin
For next
While wend
Do while loop
Do until ... Loop
Do ... Loop while
Do ... Loop until
For-each-in-next

Sesin 6
Funciones
Definicin
Funciones nativas
Uso de la propiedad: frmula
Funciones de librera en Vba
Funciones de conversin de tipos
Funciones UDF (funciones definidas por el usuario)

Sesin 7
Aplicaciones

IV. METODOLOGA
Las sesiones se desarrollarn de forma terica y mayormente prctica (inductivo
deductivo), el alumno tendr una exigencia total en los temas de inters relacionados con
el curso, al trmino de cada sesin se tendr una prctica referente al tema expuesto.

V. RECURSOS DE ENSEANZA
Medios: Clases terico prcticas con ayuda audiovisuales. Referente al tema, Material
adicional va correo electrnico.
Materiales: Separata y/o prcticas del mdulo a desarrollar, pizarra acrlica, plumones,
proyector multimedia.

VI. EVALUACION
Los elementos de evaluacin sern exmenes escritos y prcticos, intervencin del alumno
y trabajos asignados
PF=EF+TP+ > 13, 0
2
EF: Examen Final.
TP: Promedio de trabajos prcticos.

VII. BIBLIOGRAFIA
Manual de Infouni

Universidad Nacional de Ingeniera Pg. 4


Desarrollo de Aplicaciones con VBA

EDITOR DE VISUAL BASIC


El editor de Visual Basic es la aplicacin que se utiliza para construir las macros que
interactan junto con los libros de trabajo.
Para trabajar con el editor de Visual Basic lo primero que tendr que hacer es activar la Ficha
Desarrollador (para versiones anteriores es Programador).
Active la pestaa Desarrollador realizando los siguientes pasos:
1. Hacer un clic con el botn derecho en un espacio vaco dentro de la cinta de opciones,
luego hacer un clic en Personalizar la cinta de opciones

2. En la parte derecha de la ventana de opciones, active la casilla Desarrollador, Aceptar.

Al aceptar y cerrar la ventana de opciones, en la cinta de opciones se mostrar al final de las


fichas a esta nueva ficha Desarrollador.

Universidad Nacional de Ingeniera Pg. 5


Desarrollo de Aplicaciones con VBA

DESCRIPCION DEL EDITOR DE VISUAL BASIC


Abre el Editor de Visual Basic:
Seleccione la Ficha Desarrollador / Clic en el icono Visual Basic.

Barra de Men (1).- Presenta los comandos que se usan para trabajar con Visual Basic.
Adems de los mens estndar Archivo, Edicin, Ver, Ventana y Ayuda, contiene otros mens
para tener acceso a funciones especficas de programacin, como Formato, Depuracin,
Ejecutar, etc.
Barra de Herramientas (2).- Permite un acceso directo (solo un clic) a muchas de las
operaciones ms frecuentes utilizadas durante el desarrollo de aplicaciones.
Espacio de trabajo (3).- Es el lugar en el cual se van a mostrar las ventanas de proyectos
segn el tipo de trabajo que se va a ejecutar. Estas ventanas son: Ventana de Mdulo o
Cdigo y Ventana de Formulario o Diseo.
Explorador de proyectos (4).- Ventana superior izquierda, permite visualizar los objetos que
contiene el proyecto actual agrupados por categoras. Adems en la parte superior izquierda
de esta ventana hay dos botones que nos permiten intercambia r a la vista de hoja de
clculo o a la ventana de cdigo en la ventana del proyecto.
Ventana de propiedades (5).- Situada debajo del explorador de proyectos, contiene el
conjunto de propiedades, con el valor actual correspondiente, de cada uno de los objetos. Es
aqu donde podremos modificar los valores iniciales de esas propiedades, en lo que se conoce
como tiempo de diseo.

Universidad Nacional de Ingeniera Pg. 6


Desarrollo de Aplicaciones con VBA

VENTANAS DE PROYECTOS
VENTANA CDIGO
La ventana o editor de cdigo de Visual Basic proporciona de manera automtica informacin
relevante a medida que se ingresa cdigo. El cdigo est compuesto por instrucciones que le
da a la mquina. Esas instrucciones se ejecutan, pero no necesariamente resultan visibles al
usuario durante la ejecucin. En pocas palabras aqu es donde escribir el cdigo.
Para ejecutar la ventana de cdigo debe asegurarse de que est ubicado en el mdulo
apropiado como puede ser una hoja de Excel, un objeto de control, o en un mdulo.
A continuacin las formas de mostrar la ventana de cdigo.

DESDE EL EXPLORADOR DE PROYECTOS


Seleccione el nombre de la hoja en el explorador de
proyectos, hacer un clic en el icono Ver Cdigo

DESDE UN OBJETO DE CONTROL


Seleccione el objeto, doble clic en el objeto seleccionado.

DESDE UN OBJETO DE FORMAS


Clic derecho en el objeto, asignar macro, clic en nuevo.

DESDE LA BARRA DE MEN


Seleccione el men Insertar, hacer un clic en Mdulo.

Universidad Nacional de Ingeniera Pg. 7


Desarrollo de Aplicaciones con VBA

MDULOS EN VBA
Un mdulo se utiliza para recopilar bajo un nombre un conjunto de declaraciones,
instrucciones y/o procedimientos. Los mdulos estndar de Excel, que son los ms comunes
y ms fciles de escribir, incluyen solo objetos predefinidos o "estndar".
Todo cdigo pesado resulta ms conveniente escribirlo y almacenarlo en un modulo
TIPOS DE MDULOS
En Excel existen dos tipos de mdulos:
El Mdulo Estndar
El Mdulo de clase
INSERTAR MDULOS
1ra forma: Hacer un clic en el men Insertar / Mdulo
2da forma: Hacer un clic con el botn derecho en el nombre del
proyecto (VBAProject (Libro1)) / insertar / mdulo.
Y se insertar una carpeta llamada Mdulos, en ella el mdulo1

RENOMBRAR
Seleccionar el mdulo / presionar F4 o ir al
men Ver / Propiedades
En el panel propiedades hacer un doble clic
en la propiedad NAME, digitar el nuevo
nombre.
Nota: Los nombres a utilizar no deben tener
espacios en blanco ni deben empezar con
nmeros ya que generara un error.

QUITAR
1ra Forma: A travs de la ventana del explorador
de proyectos, hacer un clic con el botn derecho
en el mdulo, luego hacer un clic en la opcin
Quitar
2da Forma: Seleccionar el mdulo, ir al men Archivo / Quitar.

En ambos casos muestra un mensaje indicando si desea exportar para mantener el mdulo o
eliminarlo en definitiva. Elija la opcin segn sea necesario.

Universidad Nacional de Ingeniera Pg. 8


Desarrollo de Aplicaciones con VBA

VENTANA FORMULARIOS
Los forms (o formularios) son lo que tambin se llamaran una "ventana" o cuadro de dilogo
que en realidad es una superficie que contiene controles, como por ejemplo un botn o una
zona para escribir texto, y que se muestra visible en algn momento de la ejecucin. A
continuacin, formas de mostrar la ventana del formulario.
A) Seleccione el men Insertar, hacer un clic en UserForm.

B) Clic derecho en VBAProject(libro1), Clic en Insertar, clic en UserForm

Al insertar la ventana de Formulario se agrega automticamente el Cuadro de herramientas


situado a la izquierda del formulario por defecto.
Este cuadro contiene los controles que
puede ir colocando en el formulario, para ello
bastar con seleccionar el control a utilizar y
hacer un clic en el rea donde desee colocar,
o hacer un arrastre y "dibujarlo" sobre el
formulario hasta obtener el tamao
adecuado.
Para mostrar el cuadro de herramientas
cuando por algn motivo se haya cerrado,
en la barra de iconos hacer un clic en el icono Cuadro de Herramientas. De igual manera si
desea ocultar el cuadro, seleccione el mismo icono o presione sobre el botn cerrar del mismo
cuadro de herramientas.

Tambin puede mostrar/ocultar seleccionando desde el


men Ver / Cuadro de herramientas

Universidad Nacional de Ingeniera Pg. 9


Desarrollo de Aplicaciones con VBA

PROCEDIMIENTOS Y PRINCIPIOS FUNDAMENTALES


Excel es un software muy poderoso para el manejo, anlisis y presentacin de datos aun y
con todas sus bondades, en ocasiones no llega a suplir algunas necesidades especficas de
los usuarios.
Afortunadamente Excel cuenta con VBA que es un lenguaje de programacin que permite
extender las habilidades del programa para cubrir los requerimientos as como tambin puede
desarrollar nuevos algoritmos e inclusive integrar a Excel con alguna otra aplicacin.
Para empezar a programar se tomar en cuenta si se va a crear una macro o una funcin que
definir el procedimiento a utilizar.

PROCEDIMIENTOS Y TIPOS
Un procedimiento es bsicamente una unidad de cdigo informtico que realiza alguna accin.
Existen dos tipos de procedimientos y son: Sub o Function
EL PROCEDIMIENTO SUB que es la abreviacin de la palabra subrutina no es ms que un
conjunto de instrucciones que se ejecutarn una por una hasta llegar al final de la subrutina
que est especificado por el procedimiento End Sub.

EL PROCEDIMIENTO FUNCTION que es el que devuelve siempre un solo valor o devuelve


una matriz. Se llama desde otro procedimiento, se puede usar como funcin de hoja de
clculo.

PRINCIPIOS FUNDAMENTALES
La programacin en VBA puede ser un tanto misteriosa para la mayora de los usuarios de
Excel, sin embargo una vez que se comprenden los principios bsicos de programacin en
VBA se comenzarn a crear soluciones robustas y efectivas.
La Programacin Orientada a Objetos (POO) el cual se basa en las interacciones de objetos
se compone de elementos y caractersticas. Los elementos de la POO, pueden entenderse
como los materiales que necesita para disear y programar un sistema, mientras que las
caractersticas, podra asumirse como las herramientas de las cules dispone para construir
el sistema con esos materiales

Universidad Nacional de Ingeniera Pg. 10


Desarrollo de Aplicaciones con VBA

El primer concepto importante a entender es que cada elemento de Excel es representado en


VBA como un OBJETO. Por ejemplo:
Objeto Workbook que representa a un libro de Excel.
Objeto Sheet que representa una hoja
Objeto Chart que representa a un grfico.
Tambin se puede encontrar objetos que se componen de otros objetos los cuales se puede
identificar a modo de pregunta Qu tiene el objeto? o de qu est compuesto el objeto?

Application

Workbook Sheets Chart

Range Cells Column Row

El segundo concepto importante a entender es que cada uno de estos objetos tiene
PROPIEDADES y MTODOS.
Las propiedades de un objeto nos ayudan a describirlo mejor en todo momento
Los mtodos son las acciones que puede realizar con dicho objeto
Por Ejemplo:
El objeto WORKBOOK tiene
Propiedades como:
ActiveSheet (Hoja activa), Name (Nombre), ReadOnly (Solo Lectura), Saved (Guardado)

Y algunos Mtodos como:


Open (Abrir), Close (Cerrar), PrintOut (Imprimir), Protect (Proteger), Unprotect
(Desproteger).

Cells

Propiedades Mtodos

Value Address Activate Calculate Clear

Universidad Nacional de Ingeniera Pg. 11


Desarrollo de Aplicaciones con VBA

MACROS
Las Macros en Excel son un conjunto de instrucciones que se ejecutan de manera secuencial
por medio de una orden de ejecucin, claro est que una Macro puede invocar a otras Macros,
logrando de esta forma obtener operaciones cada vez ms complejas.
CREAR UNA MACRO (EL PROCEDIMIENTO SUB)
Para crear una macro se utiliza el procedimiento Sub que es la abreviacin de la palabra
subrutina en el cual se agregan el conjunto de instrucciones que se ejecutarn una por una
hasta llegar al final de la subrutina que est especificado por el procedimiento End Sub.
SINTAXIS
La macro se representa con un nombre el cual debe ser especificado justo despus de la
instruccin Sub y seguido por los parntesis.

Procedimiento Sub, indica Nombre de la Argumentos. Si no hay


que se est creando una macro coloque solo los parntesis
macro

Sub Nombre-de-Subrutina (lista-argumentos)


I
Escribir las Instrucciones o
End Sub pasos que ejecutar la macro

Procedimiento End Sub, indica la


detencin de la macro

O tambin
[Private] [Public] [Static] Sub Nombre-de-Subrutina (lista-argumentos)
Instrucciones
End Sub
Las partes entre corchetes indican que son opcionales. Adems:
Public. Indica que la subrutina puede ser llamada por todas las dems subrutinas sin importar
donde se encuentre.
Private. Indica que la subrutina puede ser llamada solamente por otras subrutinas que se
encuentren en el mismo mdulo.
Static. Es opcional. Indica que las variables locales de la subrutina se mantienen constantes
de una llamada a otra. El mbito de accin de esta declaracin no incluye a variables
declaradas fuera de la subrutina.
Estas macros se crean desde diferentes puntos como pueden ser:
MACRO DESDE LA VENTANA DE CDIGO
1. Abre la ventana de cdigo (men insertar / mdulo)
2. Escribe El texto Sub seguido del nombre que le dar a la macro por ejemplo INICIO y el
parntesis abierto y cerrado como muestra la imagen siguiente, luego presione Enter.
Automticamente en la parte inferior se mostrar el
texto End Sub indicando el final de las instrucciones
(NO BORRAR End Sub)

Universidad Nacional de Ingeniera Pg. 12


Desarrollo de Aplicaciones con VBA

3. Escribe el o los procedimientos que ejecutar la macro en forma ordenada. Por ejemplo:

Las instrucciones que se le est dando a la macro son:


Seleccione la celda A3, que muestre el valor Si se puede,
luego que aplique el tipo de fuente Monotype Corsiva
4. Hacer un clic en el Icono Ejecutar ubicado en la barra de herramientas o presione la tecla
F5 y estar ejecutando la macro creada.

5. Para comprobar, cierre la ventana de Visual Basic y observe el


resultado en la hoja de Excel

MACRO EN UN BOTN DE COMANDO (CONTROL ACTIVEX)


1. En la hoja de Excel inserte el control Botn de Comando
(Ficha Desarrollador / Grupo Controles / Insertar /
Controles ActiveX / Botn de comando

2. Hacer un doble clic en el botn de Comando. Abrir la


ventana del Editor de Visual Basic.

3. Verifique la posicin del cursor. Debe


encontrarse entre Private Sub
CommandButton1_Click () y End Sub.

3. Escribe el o los procedimientos que ejecutar la macro en forma ordenada. Por ejemplo:

4. Cierre el Editor de Visual Basic. En la hoja de Excel desactive el icono modo Diseo (Ficha
Desarrollador / Grupo controles / Modo Diseo). Hacer un clic en el botn y ejecutar las
instrucciones asignadas.

Universidad Nacional de Ingeniera Pg. 13


Desarrollo de Aplicaciones con VBA

SEGURIDAD DE MACROS
La seguridad es un tema importante ya que al abrir algn archivo que contenga una macro
maliciosa puede causar algn tipo de dao al equipo. De manera predeterminada Excel no
permite ejecutar macros automticamente.

Si est creando una macro propia y desea quitar la proteccin porque sabe que no existe
cdigo malicioso, entonces modifique la configuracin de seguridad de las macros como se
describe a continuacin:

- Seleccione la Ficha Desarrollador / hacer un


clic en Seguridad de macros

- Seleccione la opcin Habilitar todas las macros / active la casilla Confiar en el acceso al
modelo de datos del proyecto de VBA / clic en Aceptar.

GUARDAR ARCHIVOS CON MACROS


Una vez que haya creado una macro es importante guardar el archivo con
un tipo que guarde para que posteriormente pueda ser utilizado ya que si
lo guarda con el tipo predeterminado automticamente se eliminarn las
macros.
Para guardar realice lo siguiente:
- Hacer un clic en el men Archivo / clic en Guardar como (o presione las teclas CTRL + G)
- Elige el lugar donde va a guardar el archivo (por ejemplo: Escritorio)
- En el cuadro nombre escribe un nombre para el archivo
- En tipo Seleccione: LIBRO DE EXCEL HABILITADO PARA MACROS / clic en guardar

Universidad Nacional de Ingeniera Pg. 14


Desarrollo de Aplicaciones con VBA

PROGRAMAR EN EL EDITOR DE VISUAL BASIC


EL OBJETO CONTENEDOR Y EL CONTENIDO
Al iniciar la programacin se debe identificar dos puntos muy importantes como son:
El objeto contenedor que es el lugar donde se mostrar el resultado el cual puede ser una
celda, un conjunto de celdas, un objeto de control, etc.
El contenido que es el valor a mostrarse en el objeto contenedor. Puede ser un nmero, texto,
frmula, imagen, contenido de otra celda, etc.
Entre el objeto contenedor y el contenido deber estar el signo de comparacin igual (=) que
determinar el resultado.

Dnde quiero ver el resultado? Qu quiero que se muestre?


OBJETO CONTENEDOR EL CONTENIDO

Range(A1) = Excel

Signo de comparacin

USO DE LOS OBJETOS, PROPIEDADES Y MTODOS


Para acceder a las propiedades y mtodos de un objeto se hace a travs de una nomenclatura
especial. Justo despus del nombre del objeto coloque un punto y luego escribe el nombre de
la propiedad o del mtodo.

PROPIEDAD PARA UN OBJETO


Ejemplo: Escribir la propiedad Font para una celda

Escribe el nombre del objeto Escribe la propiedad para la celda


(En este caso el nombre de la celda (en este caso Font)
A1)

Range(A1).Font

Tambin, cada vez que se coloca el punto seguido al nombre del objeto se activa una lista de
propiedades, busque en la lista y seleccione la propiedad a utilizar.

Universidad Nacional de Ingeniera Pg. 15


Desarrollo de Aplicaciones con VBA

METODO PARA UN OBJETO


Ejemplo: Escribir el mtodo AddComment para insertar un comentario en una celda

Ejemplo2: Escribir el mtodo Delete para eliminar una celda

VER TODAS LAS PROPIEDADES Y MTODOS


Los objetos tienen muchas propiedades y
mtodos y a veces es difcil pensar que los
llegaremos a memorizar todos por completo. Sin
embargo, el Editor de Visual Basic es de gran
ayuda porque justamente al momento de escribir
nuestro cdigo nos proporciona la lista completa
de propiedades y mtodos para un objeto.

Se ven las propiedades as como los mtodos al momento de introducir el punto despus del
nombre del objeto. Se distingue entre las propiedades y mtodos porque tienen iconos
diferentes. Los mtodos son los que tienen el icono de color verde. Y las propiedades son los
que tienen el icono con la manito.

Tambin puede mostrar la lista de propiedades y mtodos de cada objeto en la ventana del
Examinador de Objetos. Esta ventana se abre presionando la tecla F2 o desde el men Ver /
Examinador de Objetos.

Universidad Nacional de Ingeniera Pg. 16


Desarrollo de Aplicaciones con VBA

UTILIZAR LA RUTA COMPLETA PARA PROGRAMAR


Para tener acceso a los objetos que estn por debajo de un objeto utilice el punto. El punto
ayuda a navegar por la jerarqua hacia un nivel inferior. As se podra describir por completo
la jerarqua de los objetos.
Ejemplo:
Mostrar el texto Hola en la celda A1 de la hoja activa de Excel

CONJUNTO DE INSTRUCCIONES PARA UN OBJETO


Al especificar toda la ruta completa hasta llegar al objeto deseado se busca dar una claridad
absoluta sobre la ubicacin exacta de cada objeto lo cual ayudar a evitar cualquier mala
interpretacin del cdigo. El problema es que ocupa ms tiempo en escribir la programacin.

USO DE LA INSTRUCCIN WITH


Puede ahorrar algunas palabras de un cdigo haciendo uso de la instruccin With as:

En ambos casos el resultado ser el mismo y en el ltimo ahorrar


algunos caracteres dejando el cdigo VBA claro y legible.

OBJETOS PREDETERMINADOS
Existe una funcionalidad intrnseca de VBA conocida como objetos predeterminados la cual
nos permite omitir la escritura de algunos objetos y aun as tener un cdigo funcional.
Por ejemplo el objeto Application se puede omitir ya que esto hace referencia al programa de
Excel. Lo mismo puede ser con los objetos Activeworkbook (se refiere al libro que se est
utilizando) y ActiveSheet (se refiere a la hoja actual en la cual se est trabajando) y la
funcionalidad del cdigo ser la misma.

Universidad Nacional de Ingeniera Pg. 17


Desarrollo de Aplicaciones con VBA

OBJETO RANGE
El objeto Range, que es la representacin de una celda (o celdas) en la hoja de clculo, es el
objeto ms importante de Excel VBA.
Con los ejemplos se tiene una visin general de las propiedades y mtodos del objeto Range.
SELECT (SELECCIN)
Un mtodo importante para el objeto Range es el mtodo Select. Este mtodo permite
seleccionar una celda o un rango de celdas.

Range(A1).Select Celda A1 seleccionada


En las siguientes lneas se describen algunos ejemplos de seleccin de celdas
SELECCIONAR UNA COLUMNA
Sub Selecciono()
Range("A:A").Select Seleccin de toda la columna A
End Sub
SELECCIONAR UNA FILA
Sub Selecciono()
Range("2:2").Select Seleccin de toda la fila 2
End Sub
SELECCIONAR RANGOS DISCONTINUOS
Sub Selecciono()
Range("A2:A5,B6,C3:D5").Select
End Sub
SELECCIONAR UNA CELDA CON EL VALOR DE UNA VARIABLE
Sub Selecciono()
Dim Variable as Integer
Variable=5
Range("A&Variable).Select
End Sub
SELECCIONAR Y COMBINAR CELDAS
Sub Selecciono()
Range("A2:D2").Select
Selection.Merge
End Sub
SELECCIONAR UN RANGO A PARTIR DE UNA CELDA ACTIVA
Sub Selecciono()
Range("B2").CurrentRegion.Select
End Sub

Universidad Nacional de Ingeniera Pg. 18


Desarrollo de Aplicaciones con VBA

SELECCIONAR A PARTIR DE UNA CELDA HACIA ABAJO


Sub Selecciono()
Range("B2", Range("B2").End(xlDown)).Select
End Sub
SELECCIONAR A PARTIR DE UNA CELDA HACIA LA DERECHA
Sub Selecciono()
Range("B2", Range("B2").End(xlToRight)).Select
End Sub
SELECCIONAR A PARTIR DE UNA CELDA HACIA ARRIBA
Sub Selecciono()
Range("B2", Range("B2").End(xlUp)).Select
End Sub
SELECCIONAR A PARTIR DE UNA CELDA HACIA LA IZQUIERDA
Sub Selecciono()
Range("B2", Range("B2").End(xlToLeft)).Select
End Sub
SELECCIONAR LA ULTIMA CELDA QUE CONTIENE DATOS
Sub Selecciono()
Range("B2").End(xlDown)).Select
End Sub

SELECTION
Con Selection puede cambiar o establecer propiedades al rango seleccionado
Sub Selecciono()
Range("B2").Select
Selection.Value = "Dame un like si te gusta"
Selection.Font.Name = "Monotype Corsiva"
End Sub

Sub Selecciono()
Range("B2").Select
Selection.Entirerow.Insert
End Sub

VALUE
Con Value puede establecer un valor en un rango seleccionado a partir de un dato ingresado
o calculado
Sub Selecciono()
Range("A2").Value = "Ms fcil no hay"
End Sub

Sub Selecciono()
Range("A2").Value = 25 * 12
End Sub

Universidad Nacional de Ingeniera Pg. 19


Desarrollo de Aplicaciones con VBA

COPIAR / PEGAR
Los mtodos Copy y Paste se utilizan para copiar un rango y pegarlo en otro lugar de la hoja
de trabajo.
Range("A1:A2").Select
Selection.Copy
Range("C3").Select
ActiveSheet.Paste

Tambin puede utilizar el cdigo en una sola lnea el cual hace exactamente lo mismo que el
anterior
Range("C3:C4").Value = Range("A1:A2").Value

LIMPIAR
Para borrar el contenido de un rango de Excel, puede utilizar el mtodo ClearContents.
Range(A1).Clearcontents
o simplemente utilizar:
Range("A1").Value = ""

Para borrar el contenido y formato


utilice el mtodo Clear
Range("A1").Clear

Para borrar solo el formato utilice el


mtodo ClearFormats
Range("A1").ClearFormats

Para borrar tambin puede utilizar el mtodo Delete


Range(4:4).Delete

Universidad Nacional de Ingeniera Pg. 20


Desarrollo de Aplicaciones con VBA

CELLS (CELDA)
En vez de Rangos, tambin puede utilizar las celdas. El uso de celdas es particularmente til
cuando se quiere recorrer rangos.

Row = Fila Column = Columna


Ingrese el nmero de la fila Ingrese el nmero de la columna
Cells([RowIndex],[ColumnIndex])
La interseccin de los nmeros indica la posicin de la celda en la hoja de clculo

UNA CELDA
Ingresar el nmero 2 en la celda A3
Sub Ingresar()
Cells(3, 1).Value = 2
End Sub

UN RANGO DE CELDAS
Ingresar el nmero 5 en el rango de celdas A1:A4
Sub Ingresar()
Range(Cells(1, 1), Cells(4, 1)) = 5
End Sub

VENTAJA DEL OBJETO CELLS


Es mucho ms comn encontrarse el objeto Range en las aplicaciones VBA, sin embargo el
objeto Cells ofrece una ventaja que debemos considerar cuando necesitamos hacer un
recorrido programtico por varias celdas ya que ser muy sencillo especificar las filas y
columnas utilizando una variable numrica.
Ejemplo
Ingresar los primeros 4 nmeros positivos
Sub Registrar()
For i = 1 To 4
Cells(i, 1).Value = i
Next
End Sub

Universidad Nacional de Ingeniera Pg. 21


Desarrollo de Aplicaciones con VBA

CONSEJOS PARA LA ESCRITURA DEL CDIGO


COMENTARIOS
Permiten documentar el cdigo que est escribiendo para hacerlo ms legible.
Las lneas de comentario comienzan por un apstrofe (') o con la palabra clave Rem.
Los comentarios aparecen en pantalla en color verde, aunque puede cambiar de color.

CARACTERES DE CONTINUACIN
Al combinar un espacio seguido de un guin bajo _, se utiliza para poder saltar la lnea de
cdigo y as no perder la visibilidad en la pantalla, aunque tiene alguna restriccin, no se
puede utilizar para continuar una lnea de cdigo dentro de una expresin de tipo cadena.

AADIR SANGRAS
Las tabulaciones nos permiten una mayor legibilidad del cdigo. Es especialmente
recomendado utilizarlo en las estructuras de control y decisin.

NOMBRES DE PROCEDIMIENTOS, VARIABLES Y CONSTANTES.


Los nombres de procedimientos, variables y constantes deben de respetar las siguientes
reglas:
El primer carcter debe de ser una letra.
No se diferencia mayscula de minsculas.
No se usan nombres reservados en VB.
Un nombre no puede tener ms de 255 caracteres.
Los procedimientos Function, no se usan nombres iguales a referencias de celdas.
No se usan el punto, el espacio, ni los signos !, $, # y @

Universidad Nacional de Ingeniera Pg. 22


Desarrollo de Aplicaciones con VBA

MSGBOX
Los cuadros de mensaje ofrecen un modo simple y rpido de consultar informacin simple o
para permitir tomar decisiones. Puede usar esta funcin para mostrar diferentes tipos de
mensaje y botones con los cuales se pueda tener una respuesta.
SINTAXIS

MsgBox(Prompt,[Buttons],[Title],[Helpfile],[Context])

Tittle
AVISO

Buttons Prompt
vbInformation Bienvenido a VBA

La sintaxis de la funcin MsgBox consta de los siguientes argumentos:


Prompt.- Representa el mensaje en el cuadro de dilogo. Si consta de ms de una lnea,
seprelo utilizando un carcter de retorno Chr(13) o un carcter de avance de lnea Chr(10)
Buttons.- Expresin numrica que corresponde a la suma de los valores que especifican el
nmero y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a
utilizar, la identidad del botn predeterminado y la modalidad del cuadro de mensajes. Si se
omite este argumento, el valor predeterminado para buttons es 0.
Title.- Texto que se muestra en la barra de ttulo del cuadro de dilogo. Si se omite, en la barra
de ttulo se coloca el nombre del programa.
Helpfile.- Texto que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda
interactiva en el cuadro de dilogo. Si se especifica, tambin se debe especificar context.
Context.- Expresin numrica que es igual al nmero de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica, tambin se debe especificar helpfile.

Universidad Nacional de Ingeniera Pg. 23


Desarrollo de Aplicaciones con VBA

Algunos ejemplos con MSGBOX


MENSAJE SIMPLE
Inserte el botn de comando, hacer un doble clic para
ingresar al editor de Visual Basic y digite un mensaje
simple.
MsgBox "Qu fcil es VBA"

MENSAJE DE UN VALOR INGRESADO EN UNA CELDA


En primer lugar, introduzca un nmero en la celda A1.
Inserte el botn de comando, hacer un doble clic para ingresar
al editor de Visual Basic y digite un mensaje siguiente.
MsgBox ("El valor ingresado en la celda es ") & Range ("A1")

MENSAJE EN LNEAS
Inserte el botn de comando, hacer un doble clic para
ingresar al editor de Visual Basic y digite un mensaje
siguiente.
MsgBox ("Excel Bsico" & Chr(13) & "Excel Intermedio")

MENSAJE CON BOTONES SI / NO


Inserte el botn de comando, hacer un doble clic para ingresar al editor de Visual Basic y digite
un mensaje siguiente:

RESPUESTA = MsgBox("Desea continuar", vbYesNo + vbQuestion, "AVISO")


If RESPUESTA = vbYes Then
MsgBox "Muy bien, Adelante",,AVISO
End If

Universidad Nacional de Ingeniera Pg. 24


Desarrollo de Aplicaciones con VBA

INPUTBOX
Muestra un mensaje en un cuadro de dilogo, espera que el usuario escriba un texto o haga
clic en un botn y devuelve un tipo de dato como texto que es el contenido ingresado en el
cuadro de texto.
SINTAXIS

Inputbox( Prompt,[Title],[Default],[Xpos],[Ypos],[Helpfile],[Context])

Prompt Tittle
Ingrese el nombre del Producto COMERCIAL AAA

Retorno del dato


ingresado en el
Inputbox

La sintaxis de la funcin InpuBox consta de los siguientes argumentos:


Prompt.- Representa el mensaje en el cuadro de dilogo. Si consta de ms de una lnea,
seprelo utilizando un carcter de retorno Chr(13) o un carcter de avance de lnea Chr(10)
Title.- Texto que se muestra en la barra de ttulo del cuadro de dilogo. Si se omite, en la barra
de ttulo se coloca el nombre del programa.
Default.- Texto que se muestra en el cuadro de texto como respuesta predeterminada. Si
omite, se muestra el cuadro de texto vaco.
Xpos.- Es la distancia en sentido horizontal entre el borde izquierdo del cuadro de dilogo y el
borde izquierdo de la pantalla. Si se omite, el cuadro de dilogo se centra horizontalmente.
Ypos.- Es la distancia en sentido vertical entre el borde superior del cuadro de dilogo y el
borde superior de la pantalla. Si se omite, el cuadro de dilogo se coloca aproximadamente
un tercio de la altura de la pantalla, desde el borde superior de la misma.
Helpfile.- Texto que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda
interactiva en el cuadro de dilogo. Si se especifica, tambin se debe especificar context.
Context.- Expresin numrica que es igual al nmero de contexto de Ayuda asignado por el
autor al tema de Ayuda correspondiente. Si se especifica, tambin se debe especificar helpfile.

Universidad Nacional de Ingeniera Pg. 25


Desarrollo de Aplicaciones con VBA

Algunos ejemplos con Inputbox


VALOR POR DEFECTO (DEFAULT)
El dato por defecto ser la fecha Actual el cual se representar con la funcin Date.
Insertar un botn de comando, hacer un doble clic para ir al editor de Visual Basic, digite lo
siguiente:

INFORMACIN EN LNEAS
Cuando desea poner en dos lneas utilice el ampersand, luego digite Chr(13), esto es como
si presionara Enter, digite el segundo texto entre comillas, luego digite el ttulo que debe tener
la ventana

Universidad Nacional de Ingeniera Pg. 26


Desarrollo de Aplicaciones con VBA

ERRORES DE MACROS
Los errores se dan cuando se estn ingresando datos incorrectos en la lnea de cdigo como
pueden ser errores de digitacin o variables no declaradas.
ERRORES DE DIGITACIN
Inserte un botn de comando (control activeX) en la hoja de Excel, hacer un doble clic, en la
ventana de cdigo escribe las siguientes instrucciones:

x=2
Range("A1").Valu = x

Esta ventana de error se muestra porque no reconoce al texto Valu que es una propiedad
mal digitada, lo correcto era digitar Value.

VARIABLES NO DECLARADAS
Inserte un botn de comando (control activeX) en la
hoja de Excel; hacer un doble clic en el botn.
En la ventana de cdigo escribe Option Explicit al
inicio del cdigo como se muestra en la imagen ---

Debajo de la lnea Private Sub escribe las


siguientes instrucciones:
X=2
Range("A5").Value = X
Presione la tecla F5 para ejecutar la macro. Como la variable X no est definido. Excel VBA
ha coloreado la X azul y muestra una ventana con el mensaje de error

Universidad Nacional de Ingeniera Pg. 27


Desarrollo de Aplicaciones con VBA

CORREGIR ERRORES
En el Editor de Visual Basic, haga clic en
Restablecer para detener el depurador ------
Debajo de Private Sub digite lo siguiente
Dim x As Integer

DEPURAR LNEAS DE CDIGO


Es posible que haya odo hablar de la tcnica llamada depuracin antes de ejecutar. Con esta
tcnica se puede recorrer el cdigo. Los procedimientos a seguir son:
* En el Editor de Visual Basic, coloque el
cursor antes de la lnea de cdigo Private
Sub
* Presione la tecla F8 y la primera lnea se
pinta de color amarillo.

Presione F8 varias veces para pasar de


lnea en lnea.

Cuando la lnea tiene algn error muestra la


ventana siguiente de error

La depuracin es una gran manera de no


slo encontrar errores, sino tambin
entender el cdigo mejor.

Para verificar o comprobar que no haya ms errores presione el botn Continuar. En este
procedimiento debe limpiar la franja pintada de color amarillo

Universidad Nacional de Ingeniera Pg. 28


Desarrollo de Aplicaciones con VBA

VARIABLES
Una variable es un nombre que hace las funciones de contenedor polivalente que puede
albergar distintos valores o datos los cuales depender de la clase de dato que desea guardar
dentro de ellas
Hay que tener en cuenta que Excel interpreta de forma inteligente el tipo de variable a la que
nos estamos refiriendo. Es decir, la variable se refiere a valores numricos, pero en otros
casos pueden ser textos, fechas, etc.
Ese "reconocimiento inteligente" que hace Excel del tipo de variable, requiere la utilizacin de
ms memoria en el equipo (debido a que asigna por defecto un tipo de variable-comodn
llamado "variant") y por lo tanto es conveniente facilitarle las cosas indicando en lo que se
llama una "declaracin de variable".
Si no se declara la variable tomar como tipo de dato Variant (tipo de variable que almacena
todo tipo de informacin). El tipo variant ocupa 20 bytes. Cosa que no es recomendable
De ah se recomienda que la variable sea declarada. Y es ms fcil de hacer modificaciones
Por qu declarar variables?
Bsicamente es para tener ms ordenado la codificacin. Si declara las variables:
Ocuparn menos espacio en memoria.
Nuestra macro ser difcil de interpretar para otros usuarios que puedan necesitar leer el
cdigo VBA (incluso para nosotros mismos). Tener al principio de la macro una lista con
las variables declaradas resulta muy til y aclarador.
Podra utilizar esa variable posteriormente en varias macros.

DECLARAR VARIABLES A OBJETOS


Declarar variables de objeto permite el ahorro en tiempo de escritura de cdigo, en tiempo de
ejecucin del mismo, as como la organizacin y orden conseguidos en la estructura del
procedimiento o macro.
Escribe un
As
Para declarar la variable: nombre personal
Expresin que se
para la variable
interpreta como

Dim Escribe el nombre con


Establecer o Declarar Dim IGV as Double el cual se reconocer
el tipo de dato

En resumen se interpreta as:


Establecer el nombre IGV como valor Decimal

Universidad Nacional de Ingeniera Pg. 29


Desarrollo de Aplicaciones con VBA

REGLAS
Las variables a declarar deben seguir ciertas reglas determinadas:
La denominacin de la variable debe empezar con una letra y no con un nmero.
No debe de tener ms de 250 caracteres.
No puede emplearse las palabras reservadas para la sintaxis de la propia Excel. Por
ejemplo no puede llamar a una variable con el nombre de WorkSheet etc.
Debe consistir en una cadena continua de caracteres. Por ejemplo no puede emplear como
nombre mi variable pero s mi_variable.

TIPOS DE VARIABLES
Existen tipos de datos diferentes con los que se puede trabajar. Por ejemplo al declarar una
variable en VBA basta aadir una lnea de cdigo para definir la naturaleza de los valores que
almacenaremos en ella. Estos son:
INTEGER (ENTERO)
La variable Integer se utiliza para almacenar nmeros enteros.
Dim x As Integer Declarar x como valor entero
x=6 X es igual a 6
Range ("A1").Value = x El contenido de la celda A1 es igual
al valor de 6
DOUBLE (DOBLE)
Una variable de tipo Double es ms precisa que una variable de tipo entero y tambin puede
almacenar nmeros decimales.

Dim x As Double declarar x como decimal


x = 5.5 x es igual a 5.5
MsgBox "el valor es " & x mensaje:el valor es 5.5

STRING (TEXTO) (CADENA)


La variable String se utiliza para almacenar texto.
Dim book As String Declarar book como texto
book = "Excel" book es igual a Excel
Range("A1").Value = book La celda A1 es igual a Excel

CURRENCY (MONEDA)
El tipo de dato Moneda es en realidad un tipo entero internamente pero que como resultado
muestra con el smbolo monetario y dos decimales.
Dim celdita As Currency
celdita = 24
Range("A3").Value = celdita

Universidad Nacional de Ingeniera Pg. 30


Desarrollo de Aplicaciones con VBA

BOOLEAN (LGICA)
Una variable de tipo lgico es aquella que puede
almacenar solamente dos valores: Falso o
Verdadero.
Dim continue As Boolean
continue = True
If continue = True Then MsgBox "Es Verdadero"

OTROS
Byte: corresponde a una variable de 8 bits que puede almacenar valores de 0 a 255. Es muy
til para el almacenamiento de datos binarios.
Long: es un nmero de 32 bits. Las variables Long slo pueden contener valores enteros.
Decimal: El Decimal es un subtipo de dato Variant. Tiene una precisin de hasta 28 decimales
Single: Es un nmero de 32 bits que se utiliza para nmeros decimales.
Object: Se utiliza Object cuando en el tiempo de compilacin no se conoce a qu tipo de
datos puede sealar la variable. Son de acceso ms lento que las variables que tienen un tipo
explcito.
Variant: Los Variant almacenan valores numricos y no numricos. Son los ms flexibles de
todos los tipos disponibles, ya que almacena valores muy grandes de casi cualquier tipo
(coincide con el tipo de dato numrico doble). Se recomienda evitar utilizar ya que hace ms
pesado el archivo.

OPTION EXPLICIT
sta obliga a declarar las variables que no haya declarado dando la alerta de la variable no
declarada. Hay dos formas para utilizar la declaracin de variables obligatorias y son:
VARIABLE LOCAL
Consiste en digitar Option Explicit al
principio de la lnea de cdigo
generando una lnea de divisin entre
el procedimiento sub o function.

VARIABLE PREDETERMINADA
Para predeterminar la variable seleccione el Men herramientas en el Editor de Visual Basic,
hacer un clic en Opciones, en la pestaa Editor activar la casilla requerir declaracin de
variable

Universidad Nacional de Ingeniera Pg. 31


Desarrollo de Aplicaciones con VBA

PROGRAMACIN BSICA
LIBROS
CREAR UN LIBRO ABRIR UN LIBRO
Sub Libritos() Sub AbreLibritos()
Dim nuevo As Workbook Workbooks.Open "Ejemplo.xlsx"
Set nuevo = Workbooks.Add End Sub
End Sub
CERRAR UN LIBRO ACTIVO
GUARDAR UN LIBRO Sub CierraLibritos()
Sub GuardaLibritos() Workbooks.Close
Dim nuevo As Workbook End Sub
Set nuevo = Workbooks.Add
nuevo.SaveAs "Ejemplo.xlsx"
End Sub

HOJAS
INSERTAR HOJA MOVER HOJAS
Sub Hojitas() Sub MoverHojitas()
Sheets.Add Worksheets("Hoja5").Move
End Sub after:=Worksheets("casos")
End Sub
INSERTAR UNA HOJA ANTES DE UNA
HOJA ESPECFICA
ELIMINAR HOJAS
Sub Hojitas()
Sub MoverHojitas()
ActiveWorkbook.Sheets.Add
Sheets("Hoja3").Delete
before:=Worksheets("casos")
End Sub
End Sub

INSERTAR UNA HOJA DESPUES DE


UNA HOJA ESPECFICA
Sub Hojitas()
ActiveWorkbook.Sheets.Add
after:=Worksheets("casos")
End Sub

Universidad Nacional de Ingeniera Pg. 32


Desarrollo de Aplicaciones con VBA

CONTROLES DE FORMULARIO
Los controles de formulario en Excel son objetos que puede colocar dentro de una hoja y que
darn funcionalidad adicional para interactuar mejor con los usuarios y tener un mejor control
sobre la informacin.
Para insertar cualquiera de los controles de formulario seleccione la ficha desarrollador, luego
hacer un clic en el botn Insertar y observar cada uno de ellos, seleccione del men
desplegable y dibuje haciendo un arrastre en diagonal hasta encontrar el tamao adecuado
TIPOS DE CONTROLES DE FORMULARIO
Existen diferentes tipos de controles de formulario en Excel que
ofrecen diversos tipos de funcionalidad e interaccin con el usuario.
Desde una simple etiqueta hasta controles que permiten una
seleccin mltiple de sus opciones. Entre los controles estn:
Etiqueta. Permite especificar un texto o breves instrucciones en el
formulario.
Cuadro combinado. Es una combinacin de un cuadro de texto con un cuadro de lista.
Cuadro de lista. Muestra una lista de valores de los cuales puede elegir una sola opcin o
mltiples opciones de acuerdo a la configuracin del control.
Control de nmero. Aumenta o disminuye un valor numrico.
Barra de desplazamiento. Al hacer clic en las flechas se va desplazando la barra dentro de
un intervalo predefinido.
Botn. Permite ejecutar una macro al momento de hacer clic sobre l.
Casilla de verificacin. Permite la seleccin o no seleccin de una opcin.
Botn de opcin. Permite una nica seleccin dentro de un conjunto de opciones.
Cuadro de grupo. Agrupa varios controles dentro de un rectngulo.
CONTROLES ACTIVEX
Los controles ActiveX son un tipo de controles que permiten agregar
funcionalidad de formularios a los libros de Excel.
Los controles ActiveX comenzaron a ser utilizados a partir de Excel
97 y ofrecen ms posibilidades de configuracin y formato.

DIFERENCIA ENTRE CONTROLES DE FORMULARIO Y CONTROLES ACTIVEX


La diferencia ms significativa entre ambos es la forma de obtener informacin de los controles
al momento de interactuar con el usuario.
Los controles de formulario solamente respondern despus de que el usuario ha
interactuado con ellos, como despus de haber pulsado el botn.
Los controles ActiveX responden de manera continua a las acciones del usuario lo cual
permite realizar acciones como por ejemplo: cambiar el tipo de puntero del mouse que se
muestra al colocar el puntero del ratn sobre el botn.

Universidad Nacional de Ingeniera Pg. 33


Desarrollo de Aplicaciones con VBA

PROPIEDADES DE LOS CONTROLES ACTIVEX


Los controles ActiveX tienen una serie de propiedades que puede configurar haciendo un clic
en Propiedades que se encuentra dentro del grupo Controles de la ficha Desarrollador.

Para ver las propiedades de un control ActiveX debe estar activado el botn Modo Diseo el
cual permitir seleccionar el control y posteriormente ver sus propiedades. Cada tipo de
control ActiveX mostrar una ventana de Propiedades con sus propias caractersticas.

CONTROLES ACTIVEX CON SUBRUTINAS VBA


Los controles ActiveX no tienen asignada una macro explcitamente sino que puede asignar
cdigo VBA para cada evento del control. Un evento de un control ActiveX puede ser: el hacer
clic, hacer doble clic, colocar el cursor en el control, etc.
Para asignar cdigo a uno de los eventos de un control ActiveX realice uno de los siguientes
procedimientos:
* Hacer clic derecho sobre l y seleccionar la opcin Ver cdigo, o
* Hacer un doble clic en el mismo control

Esto mostrar el Editor de Visual Basic con una subrutina para el evento Click() donde puede
escribir el cdigo respectivo.

Al seleccionar cualquiera de los eventos en el cuadro desplegable de la derecha se insertar


una nueva subrutina que puede utilizar. Son precisamente la gran cantidad de eventos
disponibles para los controles ActiveX lo que los hace controles muy poderosos que podemos
utilizar en nuestros formularios.

Universidad Nacional de Ingeniera Pg. 34


Desarrollo de Aplicaciones con VBA

CONTROL CUADRO DE TEXTO


Es un control ActiveX que muestra un campo vaco donde puede introducir cualquier texto.

CONTROL CUADRO DE LISTA


El cuadro de lista es un control ActiveX que permite desplegar una serie de opciones de las
cuales puede realizar una seleccin. Puede configurar el cuadro de lista para permitir
seleccionar uno o varios elementos de la lista.

CONTROL CUADRO COMBINADO


El cual tambin es llamado comnmente por su nombre en ingls como ComboBox, este
control permite crear listas desplegables en los formularios.

CONTROL CASILLA DE VERIFICACIN


Utilice para permitir que un usuario marque una opcin y por lo tanto pueda conocer sus
preferencias al verificar dicho valor en cdigo VBA.

CONTROL BOTN DE OPCIN


Permite seleccionar una sola opcin dentro de un grupo de botones de opcin. A diferencia
de las casillas de verificacin, los botones de opcin dependen uno del otro.

Universidad Nacional de Ingeniera Pg. 35


Desarrollo de Aplicaciones con VBA

FORMULARIOS EN VBA
Los forms (o formularios) son lo que tambin se llamaran "ventana" o cuadro de dilogo que
en realidad es una superficie que contiene controles, como por ejemplo un botn o una zona
para escribir texto, y que se muestra visible en algn momento de la ejecucin.
CREAR UN FORMULARIO EN EXCEL
Para crear un formulario realice los siguientes procedimientos:
1. Abre el Editor de Visual Basic (Alt + F11)
2. Seleccione el men Insertar, hacer un clic en UserForm

Otra forma
1. Abra el Editor de Visual Basic.
2. Presionar el botn derecho en el nombre del proyecto, seleccione la opcin Insertar,
hacer un clic en UserForm

Al insertar la ventana de Formulario se


agrega automticamente el Cuadro de
herramientas (por defecto situado a la
izquierda del formulario)
Este cuadro contiene los controles que
puede ir colocando en el formulario, para ello
bastar con seleccionar el control a utilizar y
hacer un clic en el rea donde desee colocar,
o hacer un arrastre y "dibujarlo" sobre el
formulario hasta obtener el tamao adecuado.

MOSTRAR/OCULTAR CUADRO DE HERRAMIENTAS


Para mostrar el cuadro de herramientas, en la barra de iconos hacer un clic en el icono
Cuadro de Herramientas. De igual manera si desea ocultar el cuadro, seleccione el mismo
icono o presione sobre el botn cerrar del mismo cuadro de herramientas.

Universidad Nacional de Ingeniera Pg. 36


Desarrollo de Aplicaciones con VBA

CONTROLES DEL CUADRO DE HERRAMIENTAS


En forma resumida se describe a continuacin a los controles

Nombre
Icono Nombre Real Nombre Comn Descripcin
Convencional

Label Se utiliza para


Etiqueta Lbl ingresar textos como
ttulos y/o subttulos
TextBox Permite introducir
Cuadro de texto Txt datos desde el
formulario.
ComboBox Permite mostrar datos
Cuadro
combinado
Cbo en una lista
desplegable.
ListBox
Permite mostrar una
Cuadro de lista Lst lista de datos en un
cuadro.

CheckBox Se utiliza para elegir


Casilla Chk en forma individual en
un grupo de casillas
OptionButton Se utiliza para elegir
Botn de opcin Btn uno dentro de un
grupo
Frame Se utiliza para
organizar y/o formar
Marco
grupos con los
controles

CommandButton Se utiliza para


Botn de
ejecutar las macros
Comando Cmd que se le haya
Botn
asignado
MultiPage
Muestra la ventana
Pgina mltiple del formulario con
varias pestaas

SpinButton Permite introducir


Control de
nmero
Spn nmeros de forma
dinmica
Picture
Se utiliza como
contenedor de las
Imagen Img imgenes insertadas
en el formulario

Universidad Nacional de Ingeniera Pg. 37


Desarrollo de Aplicaciones con VBA

DISEO DE UN FORMULARIO
El diseo del formulario consiste en insertar los controles necesarios, organizar y distribuir de
tal forma que sea atractivo al momento de ejecutarlo tanto a la vista como a su aplicacin
permitiendo controlar o ingresar datos en la hoja de clculo.
El siguiente diseo es de un formulario para el registro de datos de alumnos:

CAMBIAR NOMBRES A LOS CONTROLES


Una vez insertado el control se requiere cambiar el nombre para que mostrar en el formulario
y o para utilizar en la programacin y as entenderlo mejor. Hay diversas formas con la cual
puede cambiar el nombre los cuales se describen a continuacin:
CAMBIAR EL NOMBRE PARA MOSTRAR EN EL FORMULARIO
Desde el panel propiedades
Seleccione el control
Panel propiedades, doble clic en Caption y se
resaltar el cuadro de la derecha
Escribe el nombre respectivo y se notar el
cambio en el cuadro de nombre
Desde la ventana del formulario
Seleccione el control
Hacer un clic en el nombre del control
Borre el texto
Escribe el nuevo nombre, luego hacer un clic fuera del cuadro para
establecer el nombre.
CAMBIAR NOMBRE PARA PROGRAMAR
Seleccione el control
Panel propiedades, doble clic en la propiedad Name y se resaltar el cuadro de la derecha
Escribe el nuevo nombre incluyendo el nombre convencional al inicio

Universidad Nacional de Ingeniera Pg. 38


Desarrollo de Aplicaciones con VBA

MODELOS DE FORMULARIOS

Universidad Nacional de Ingeniera Pg. 39


Desarrollo de Aplicaciones con VBA

ABRIR FORMULARIOS DESDE LA HOJA DE CLCULO


Mostrar el formulario al presionar el control Botn
Inserte el control Botn (activeX) desde la ficha Desarrollador
Seleccione el control, clic en el icono Propiedades
En el panel Propiedades escribe un nombre para el botn en la propiedad Caption

Hacer un doble clic en el control Botn para abrir la ventana del Editor de Visual Basic y
digite la siguiente instruccin:
Escribe el nombre Escribe el evento que
del Formulario realizar el formulario.
Show = Abrir
Userform1.Show

Mostrar el formulario al Abrir el archivo


Si lo que se busca es ver un formulario desde el inicio de la aplicacin, entonces realice los
siguientes procedimientos:
Guarde el archivo de Excel para evitar prdida de datos,
Abre el editor de Visual Basic (Alt + F11)
Hacer un doble clic en el icono ThisWorkbook
Cambie el nombre General (Objeto) por Workbook y
cambiar automticamente al procedimiento Open (lugar
donde se va a programar)

Escribe: Userform1.Show

Compruebe cerrando el archivo una vez que haya


guardado todos los cambios.

Universidad Nacional de Ingeniera Pg. 40


Desarrollo de Aplicaciones con VBA

PROGRAMANDO CONTROLES DE FORMULARIO


Para programar un control se deber tener en cuenta que es lo que desea que haga dicho
control en el momento de la ejecucin o de qu manera se utilizara para los datos a trabajar
como puede ser ingresando, seleccionando, calculando, eligiendo de una lista, activando o
desactivando, etc. Adems
Es importante tener en cuenta el nombre que tiene el control,
especficamente sobre la propiedad Name ya que la Programacin va
a depender de su nombre.
A continuacin se describe algunos ejemplos de cmo programar los controles que se
utilizarn en un formulario.
CUADRO DE TEXTO (TextBox)
Mayormente para este control se programa en el botn de comando, pero tambin hay casos en
que puede programar directamente sobre el control. Aqu un ejemplo desde el mismo control
Seleccione el control y revise el nombre, o en la propiedad Name escribe el nombre para el
control (por ejm: TxtNombres)

Hacer un doble clic en el control

Escribe la siguiente instruccin:

Presione F5 para ejecutar el formulario, luego ingrese el dato

La propiedad Change indica que mientras escribes en el cuadro, ste se va


insertando en el lugar donde se haya especificado en la hoja de Excel. Se
podra decir tambin Ingresas mientras escribes.
Otro ejemplo: La siguiente instruccin en la propiedad Exit permite mostrar el resultado de
un clculo una vez que se presion la tecla Enter despus de haber ingresado el dato.

Universidad Nacional de Ingeniera Pg. 41


Desarrollo de Aplicaciones con VBA

CUADRO COMBINADO (ComboBox)


Su funcin es mostrar una lista de datos y se programa (crea) desde el mismo formulario o se
establece la informacin en el panel de propiedades. A continuacin las opciones para crear
la lista:
CREAR LISTAS INDEPENDIENTES
Seleccione el control y revise su nombre para poder utilizarlo en la programacin
Hacer un doble clic en un espacio libre dentro de la ventana del formulario

Cambiar el procedimiento Click por el procedimiento Activate o Initialize


Escribe las siguientes lneas de cdigo:

CREAR LISTAS QUE DEPENDEN DE UN CONJUNTO DE CELDAS


Desde la ventana de cdigo

Desde el panel Propiedades

Universidad Nacional de Ingeniera Pg. 42


Desarrollo de Aplicaciones con VBA

CUADRO DE LISTA (Listbox)


Su funcin es mostrar una lista de datos y se programa (crea) desde
el mismo formulario o se establece la informacin en el panel de
propiedades. A diferencia del cuadro combinado, este cuadro muestra
un conjunto de datos a la vez.

CREAR LISTAS INDEPENDIENTES


Seleccione el control y revise su nombre para poder utilizarlo en la programacin
Hacer un doble clic en un espacio libre dentro de la ventana del formulario

Cambiar el procedimiento Click por el procedimiento Activate o Initialize


Escribe las siguientes lneas de cdigo:

CREAR LISTAS QUE DEPENDEN DE UN CONJUNTO DE CELDAS


Desde la ventana de cdigo

Desde el panel Propiedades

Universidad Nacional de Ingeniera Pg. 43


Desarrollo de Aplicaciones con VBA

CASILLA DE VERIFICACIN (CheckBox)


Este control se programa desde el control Botn utilizando la sentencia IF

Se interpreta as:
Si la casilla (ChkAutocad) est activada entonces la celda A2 toma el valor de Autocad.

BOTN DE OPCIN (OptionButton)


Este control tambin se programa desde el control Botn utilizando la sentencia IF

CONTROL DE NMERO (Spinbutton)


Al programar en este control se utiliza la propiedad Change la cual indica que cuando presione
el botn un valor se va mostrando en el cuadro de texto al cual fue designado el valor

Se interpreta as:
El cuadro de texto TxtCant es igual al valor numrico del Spinbutton segn la cantidad de
veces que presione dicho botn.
IMAGEN (Image)
Este control puede almacenar una imagen fija o puede mostrar una imagen diferente cada vez
que se realice una accin.

Se interpreta as:
Al ejecutar el formulario el cuadro imgLogo muestra la imagen (por
ejemplo: sam) segn la ruta de almacenamiento y el nombre incluido con
el tipo o formato que se haya escrito entre comillas.

Universidad Nacional de Ingeniera Pg. 44


Desarrollo de Aplicaciones con VBA

BOTN DE COMANDO (CommandButton)


Este es uno de los controles en el cual se programa de forma frecuente permitiendo realizar
varias acciones de acuerdo al orden que se haya programado. Puede almacenar informacin,
realizar clculos, mostrar mensajes, abrir formularios, archivos, prcticamente puede hacer
todo lo que se le indique en las lneas de cdigo.
Ejemplo de un botn Almacenando datos en la hoja de Excel

Ejemplo de un botn que ejecuta una frmula (Calculando)

Ejemplo de un botn mostrando un Mensaje

FORMULARIO (Userform1)
Una de las opciones por la cual se programa en la ventana del formulario es porque permite
mostrar valores predeterminados en algunos controles as como mostrar almacenado una lista de
datos y otros. Para programar en el formulario puede utilizar la propiedad Initialize o Activate.
Ejemplo del formulario que muestra valores por defecto

Ejemplo de formulario que muestra una lista de datos

Universidad Nacional de Ingeniera Pg. 45


Desarrollo de Aplicaciones con VBA

APLICACIONES
MOSTRAR/OCULTAR TABLAS
1.- Elaborar el siguiente diseo

2.- En el editor de Visual Basic inserta la ventana de mdulo y crea las siguientes macros:

3.- Seleccione la casilla Per (ChkPeru), luego hacer un doble y agregue la siguiente lnea de
cdigo

4.- Realizar el mismo procedimiento con la casilla ChkBrasil


5.- Conforme utilice las casillas, las tablas se mostrarn o se ocultarn

Universidad Nacional de Ingeniera Pg. 46


Desarrollo de Aplicaciones con VBA

PRSTAMO A CLIENTES
1.- Elabore el siguiente diseo en la hoja de Excel

2.- Programe el botn Nuevo Cliente para que muestre la ventana del INPUTBOX solicitando
ingresar los datos del Cliente, el prstamo, la tasa y el nmero de plazos.

Al ingresar todos los datos, stos se mostrarn almacenados en las celdas respectivas
incluyendo la operacin que calcule la cuota a pagar.

Universidad Nacional de Ingeniera Pg. 47


Desarrollo de Aplicaciones con VBA

Programe el botn Borrar Datos el cual muestre un mensaje informativo que indica que se
van a borrar los datos ingresados y que al aceptar deja limpio las celdas de la hoja de Excel

Programe el botn Cerrar libro el cual deber cerrar el archivo de Excel guardando
automticamente todos los cambios hechos.

Universidad Nacional de Ingeniera Pg. 48


Desarrollo de Aplicaciones con VBA

PAGO AL PERSONAL

En la hoja de Excel Elabore el siguiente diseo

Programe el botn INGRESAR para que muestre el formulario con el cual se ingresarn los
datos y efectuando el clculo respectivo

En el editor de Visual Basic elabore el siguiente formulario

Universidad Nacional de Ingeniera Pg. 49


Desarrollo de Aplicaciones con VBA

Programe el botn Hallar para que realice los siguientes procedimientos:


Que calcule el monto a pagar una vez ingresado horas trabajadas, pago por hora,
bonificaciones, y el descuento respectivo
Tambin que registre los valores en la hoja de Excel en las celdas respectivas

Programe el botn Nuevo para que borre los valores


de los diferentes cuadros de texto en el formulario as
como tambin los valores de las diferentes celdas en
la hoja de Excel mostrando todo completamente
vaco.

Universidad Nacional de Ingeniera Pg. 50


Desarrollo de Aplicaciones con VBA

PALETA DE COLORES
1.- Elabore el siguiente diseo del Formulario

2.- Asigne un nombre personal a cada control

Commandbutton1 / Name / CmdLimpiar


Textbox1 / Name / txtColor
Textbox2 / Name / txtRojo
Textbox3 / Name / txtVerde
Textbox4 / Name / txtAzul

3.- Configure las propiedades para cada control Barra de Desplazamiento

Scrollbar1 / Min = 0 / Max = 255


Scrollbar2 / Min = 0 / Max = 255
Scrollbar3 / Min = 0 / Max = 255

4.- Programe el botn Limpiar para borrar el contenido de cada cuadro de texto y el retorno
del regulador al inicio de la barra de desplazamiento

Universidad Nacional de Ingeniera Pg. 51


Desarrollo de Aplicaciones con VBA

5.- Programe cada control de barra de desplazamiento para que cuando mueva el regulador
se pinte el cuadro de texto txtColor.

6.- Inhabilite los cuadros de texto txtRojo, txtVerde y txtAzul para impedir escribir un valor

7.- Inserte un control Botn de comando en la hoja de Excel y programe para abrir el formulario
elaborado

Universidad Nacional de Ingeniera Pg. 52


Desarrollo de Aplicaciones con VBA

VOTO ELECTRNICO
1.- Elabore el siguiente diseo en la hoja de Clculo de Excel

2.- Abre el editor de Visual Basic y crea una macro para cada imagen el cual al ejecutar deber
almacenar el nmero e incrementarse cada vez que se haga un clic en la imagen

3.- Programe el botn NUEVO para que borre el contenido de las celdas B14 y F14

4.- Asigne la macro creada para cada imagen (Clic derecho / Asignar macro)

5.- Ejecute cada macro haciendo un clic varias veces en cada de las imgenes

Universidad Nacional de Ingeniera Pg. 53


Desarrollo de Aplicaciones con VBA

LISTA QUE DEPENDE DE OTRA LISTA


1.- Elaborar el siguiente diseo en la hoja de clculo de Excel

2.- En la celda B5 utilizando Validacin de datos, crea una lista con las marcas de vehculos

3.- Asigne un nombre personal a cada columna de modelos que hay segn la marca
Rango E4:E11 / Nombre Personal / TOYOTA
Rango H4:H11 / Nombre Personal / HYUNDAI
Rango K4:K11 / Nombre Personal / NISSAN
4.- En la celda B6 crea una lista con la funcin INDIRECTO para que muestre los modelos
segn la marca seleccionada.

Aqu viene el inconveniente. Cuando seleccione la marca y el modelo a partir de una


segunda vez los datos no coinciden cuando se hace el cambio por otra marca ya que
qued almacenado el modelo de la marca anterior. Lo ideal es que cuando cambie la
marca en la lista de modelos no se apreciar ningn modelo hasta elegir de la lista.

Universidad Nacional de Ingeniera Pg. 54


Desarrollo de Aplicaciones con VBA

Programe en el Editor de Visual Basic para que cuando elija una marca, en la lista de modelos
no se muestre nada hasta que seleccione de la lista de modelos.
5.- Abre el Editor de Visual Basic, luego hacer un doble clic en el icono Thisworbook en el
panel Explorador de Proyectos.

6.- En el cuadro Procedimientos cambie SelectionChange por Change

7.- Escriba las siguientes instrucciones

8.- Compruebe cambiando el nombre de la marca

Universidad Nacional de Ingeniera Pg. 55


Desarrollo de Aplicaciones con VBA

ESTRUCTURAS DE DECISIN
En VBA se encuentran disponibles las principales estructuras de programacin o estructuras
de control para la creacin de las macros.
Una de las estructuras de programacin ms comunes, sencillas y muy tiles para la
programacin es la estructura IF THEN ELSE la cual se describe a continuacin.

IF THEN ELSE
La instruccin If Then Else es una estructura condicional que permite ejecutar acciones en
funcin de si se cumple una condicin.
La forma de la funcin IF es la siguiente:
If (condicin) then
(lo que hace)
Else
(en caso contrario)
End If
Tambin:
La forma de la funcin IF se expresa en una sola lnea:
If (condicin) then (lo que hace)
En este caso cumple solo con el valor verdadero, si no cumple el resultado es vaco.
IF THEN
Ejemplo1: Hallar el monto final segn las siguientes condiciones:
Descuento: Si el monto es mayor a S/. 7,500 entonces aplique un descuento de 8%
Monto Final: Monto menos el Descuento

Ejemplo2: Comprobar que un nmero escrito en la celda activa sea mayor o igual a 13. Si se
cumple, muestra un mensaje diciendo "el valor es permitido". Si no se cumple, la macro
termina y no hace nada. (Debe tener seleccionado la celda donde haya escrito)

IF....THEN...ELSE (SI( , ... , ...))


Ejemplo: Comprobar que un nmero escrito en una celda determinada es 1. Si se cumple, muestra
un mensaje diciendo "Verdadero". Si el nmero es 0, muestra un mensaje diciendo "Falso".

Universidad Nacional de Ingeniera Pg. 56


Desarrollo de Aplicaciones con VBA

IF....THEN...ELSEIF (SI, ,SI( , )))


Ejemplo: Si es de la categora A entonces su sueldo es 2000, si es de la categora B, su sueldo
es 1800 y si es C su sueldo es de 1700

IF AND (SI(Y())
Ejemplo: Si su peso es menor o igual a 30, mostrar Flaco(a), si es menor o igual a 40, mostrar
Normal, si est entre 41 y 60, mostrar Gordo(a), si es mayor de 60 mostrar Obeso(a).

IF OR (SI(O())
Ejemplo: Si es Sbado o Domingo entonces que muestre Da no laborable de lo contrario
que muestre Da laborable.

Universidad Nacional de Ingeniera Pg. 57


Desarrollo de Aplicaciones con VBA

SELECT CASE
Select Case es una alternativa a la declaracin ElseIf. Este mtodo es ms eficiente y fcil de
leer en la codificacin con respecto a la del Si Then Else.
La instruccin CASE se puede utilizar solamente en el cdigo VBA en Microsoft Excel.

CASE IS
Con la instruccin CASE Excel, tambin puede
utilizar la palabra clave Is para comparar los valores

CASE To
Con la instruccin CASE Excel, tambin puede
utilizar la palabra clave To para especificar un
rango de valores.

DELIMITAR VALORES
Con la instruccin CASE Excel, tambin puede
delimitar valores utilizando los datos
separados con comas
.

Universidad Nacional de Ingeniera Pg. 58


Desarrollo de Aplicaciones con VBA

DECLARANDO VARIABLES
Desarrollar un aplicativo para determinar el monto total a pagar por un nmero de entradas a
una determinada zona. El precio unitario de las entradas vara si se compra ms de 3 o no,
as como tambin con un descuento adicional si el cliente cuenta con una tarjeta de crdito.
Antes de que se realice la compra, se le preguntar al cliente si tiene la tarjeta de crdito del
Club para aplicarle un descuento. Si el cliente responde que SI, se entregar un precio final
con descuento, caso contrario se entregar el precio original.

Universidad Nacional de Ingeniera Pg. 59


Desarrollo de Aplicaciones con VBA

BUCLES DE REPETICIN
FOR NEXT
Esta estructura sirve para repetir un conjunto de instrucciones hasta alcanzar el lmite que
haya especificado.
La estructura es la siguiente:

Nombre Inicio Lmite

For Variable = Valor_Inicial To Valor_final


Instrucciones
{Conjunto de instrucciones que se repetirn}
Next Variable Incrementar

Variable.- Inicie con un nombre para la variable que ir contando cada una de las repeticiones
como por ejemplo: X, i, ultimafila, etc. el cual representar al valor numrico formado por el
rango entre el valor_inicial y el valor_final.
Es comn encontrar la instruccin escrita como For i = 1 lo cual indica que la variable i llevar
la cuenta de las repeticiones que deseamos que inicien en 1.
Inicio.- Valor numrico con el cual se iniciar el ciclo. Mayormente toma el valor de 1
Lmite.- Adems de inicializar la variable que llevar la cuenta de las repeticiones, especifique un
nmero como lmite donde se detendr el ciclo. Este lmite es indicado con la instruccin To.
Instrucciones.- Conjunto de instrucciones que la estructura For ir repitiendo hasta llegar al
valor lmite establecido.
Incrementar.- El final del conjunto de instrucciones se indica con la instruccin Next y que va
seguida del nombre de la variable que lleva la cuenta para incrementar su valor en uno.
Ejemplo: Llenar el rango de las celdas A1 hasta A5 con el valor de 20

Ejemplo2: Llenar el rango de celdas A1 hasta A5 con valores pares consecutivos


empezando por el nmero 2.

Universidad Nacional de Ingeniera Pg. 60


Desarrollo de Aplicaciones con VBA

Ejemplo3: Ingresar 5 valores utilizando la funcin InputBox, sumar y mostrar el resultado en


la Celda C2 de la hoja activa.

Ejemplo4: Multiplicar fila por fila desde A2 hasta B7 y mostrar el resultado en la columna C

Ejemplo5: Registrar datos fila por fila.

Universidad Nacional de Ingeniera Pg. 61


Desarrollo de Aplicaciones con VBA

WHILE WEND
Esta es una instruccin en la que no se sabe de antemano cuantas veces se repetir el ciclo
por lo tanto debe haber una condicin para salir del ciclo, en caso contrario el ciclo se repetira
en forma indefinida.

Mientras Nombre Signo de comparacin

WHILE variable operador parmetro Condicin


Instrucciones
{Conjunto de instrucciones que se repetirn}
WEND Salir

While.- Texto con el cual se da Inicio a la instruccin y se interpreta como Mientras.


Variable.- Nombre personal que ir ejecutando el conjunto de instrucciones.
Operador.- Signo de comparacin segn la condicin dada, Puede ser: <, <=, <>, >, >=, =
Instrucciones.- Conjunto de instrucciones que la estructura ir repitiendo hasta que la
condicin sea falsa.
Wend.- Final de la estructura el cual permitir salir del ciclo.
El bucle funciona de la siguiente manera: Cuando se va a ejecutar, evala una expresin y
comprueba que sta de resultados positivos. Si es as, ejecuta las instrucciones que siguen
hasta el WEND, en caso contrario se sale.
Ejemplo1: Ingresar los primeros 5 nmeros

Ejemplo2: Sumar un rango de nmeros de la columna A (digite nmeros en la columna A).


Mostrar el resultado en la celda vaca as como el mensaje indicando el total obtenido.

Universidad Nacional de Ingeniera Pg. 62


Desarrollo de Aplicaciones con VBA

DO WHILE LOOP
Esta es una estructura en la que no se sabe cuntas veces se repetir el ciclo al igual en la
estructura While-Wend y como en esta debe haber una condicin para salir de l ya que en
caso contrario este se repetira en forma indefinida. La evaluacin de la condicin se produce
antes de entrar al ciclo.
Usted puede utilizar el Do While ... Loop para probar una condicin al inicio del bucle. Se
ejecutar el bucle en tanto la condicin es verdadera y se detiene cuando la condicin se
convierte en falsa.
Una cosa a tener cuidado es que a veces el bucle puede ser un bucle infinito. Y ocurre cuando
la condicin no es falsa. En tal caso, se puede detener el bucle presionando la tecla Esc o las
teclas Ctrl + Enter
Esta es una instruccin en la que no se sabe de antemano cuantas veces se repetir el ciclo
por lo tanto debe haber una condicin para salir del ciclo, en caso contrario el ciclo se repetira
en forma indefinida.

Mientras Nombre Signo de comparacin

Instrucciones Condicin
DO WHILE variable operador parmetro
{Conjunto de instrucciones que se repetirn}
LOOP Salir

Ejemplo1: ingrese el valor de 20 en las 6 primeras celdas de la columna A

Ejemplo2: Rellenar datos fila por fila

Universidad Nacional de Ingeniera Pg. 63


Desarrollo de Aplicaciones con VBA

DO UNTIL ... LOOP


Puede probar la condicin al inicio del bucle y ejecute el bucle hasta que la condicin de
prueba se convierte en realidad.

DO ... LOOP WHILE


Cuando usted quiere asegurarse de que el bucle se ejecutar al menos una vez, usted puede
poner la prueba al final del bucle. El bucle se detendr cuando la condicin se convierte en falsa.

El bucle Do simplemente comprueba si una determinada condicin se ha cumplido al final de


cada iteracin. Detiene la ejecucin del momento en que se cumple la condicin.

DO ... LOOP UNTIL


Esta estructura de bucle, se asegura de que el bucle se ejecutar al menos una vez, usted
puede poner la prueba al final del bucle. El bucle se detendr cuando la condicin sea
verdadera.
Se ejecutar una sola vez dada la condicin que debe cumplir el cual se coloca al final de la
condicin. El bucle pasar a travs de todo el cdigo una vez y slo entonces tendr la
oportunidad de comprobar si la condicin para terminar se ha cumplido o no.
Este bucle va a ejecutar el cdigo hasta que la celda este vaca o cumpla con la condicin".

Universidad Nacional de Ingeniera Pg. 64


Desarrollo de Aplicaciones con VBA

FOR-EACH-IN-NEXT
For each Next permite la manipulacin de objetos dentro de una coleccin. Una coleccin
es el conjunto de elementos de un mismo tipo, por ejemplo, coleccin de celdas, de hojas, de
libros, de ventanas, objetos grficos, etc.
La siguiente macro permite leer el contenido de cada celda en una seleccin

La siguiente macro lee el nombre de cada hoja que tiene el archivo

Esta macro permite cambiar el nombre a un conjunto de hojas

Esta macro permite eliminar hojas menos la hoja activa

Universidad Nacional de Ingeniera Pg. 65


Desarrollo de Aplicaciones con VBA

Esta macro permite evaluar cada celda en un rango

ELEGIR UNA CELDA DE CUALQUIER RANGO


Utilice la propiedad CurrentRegion, esta propiedad es muy interesante pues permite
seleccionar un rango cuyos lmites no se conocen ya que CurrentRegion devuelve el rango
que rodea a una celda seleccionada.
Ejemplo
Obtener el promedio de los dos rangos

Este cdigo sirve para los rangos de celdas, siempre y cuando se seleccione una celda de un
rango donde desea calcular el promedio.

Universidad Nacional de Ingeniera Pg. 66


Desarrollo de Aplicaciones con VBA

FUNCIONES
Las aplicaciones informticas que habitualmente se utilizan suelen contener decenas y an
cientos de miles de lneas de cdigo fuente. A medida que los programas se van desarrollando
y aumentan de tamao, se convertiran rpidamente en sistemas poco manejables sino fuera
por la modularizacin, que es el proceso consistente en dividir un programa muy grande en
una serie de mdulos mucho ms pequeos y manejables a los que se les suele denominar
de distintas formas (subprogramas, subrutinas, procedimientos, funciones, etc.)
La divisin de un programa en funciones, presenta entre otras las ventajas siguientes:
1. Modularizacin.- cada funcin tiene una misin muy concreta, de modo que nunca tiene
un nmero de lneas excesivo y siempre se mantiene dentro de un tamao manejable.
2. Ahorro de energa y tiempo de desarrollo.- en la medida en que una misma funcin es
utilizada muchas veces, el nmero total de lneas de cdigo del programa disminuye y
tambin lo hace la probabilidad de introducir errores en el programa.
3. Independencia de datos y ocultamiento de la informacin.- Es capaz de mantener una
gran independencia con el resto del programa, manteniendo sus propios datos y definiendo
muy claramente la interfaz con la funcin que la ha llamado y con las funciones a las que
llama y no teniendo ninguna posibilidad de acceso a la informacin que no le compete
DEFINICIN
Las funciones son cdigos insertados en el programa principal que tiene un valor, o muchos
valores o ningn valor (parmetros o argumentos) especificando de qu tipo de dato es dicho
valor (aunque no es obligatorio) y que finalmente devuelven un nico valor.
Son muy tiles, entre otras cosas, cuando la frmula que se requiere para resolver un
problema usando las funciones propias de las hojas Excel resulta muy larga y complicada,
haciendo casi imposible su comprensin.
FUNCIONES NATIVAS
Para realizar clculos puede usar las llamadas funciones de hoja (WorkSheetFunction en
ingls) tambin llamadas funciones nativas, es decir ciertas funciones que normalmente estn
disponibles en las hojas de Excel, como son: SUMA, PROMEDIO, CONTAR, BUSCARV,
INDICE, etc., y puede ejecutarlo mediante el objeto Worksheetfunction.
SINTAXIS
Application.WorkSheetFunction.Nombre de la funcin(parmetros).
Por ejemplo: Si desea usar la funcin BUSCARV, la expresin sera:
Application.WorksheetFunction.VLookup(Arg1,Arg2,Arg3,[Arg4])

Las funciones incorporadas estn en una versin del ingls pero la sintaxis es la misma que
la usada en la hoja de clculo de Excel

Universidad Nacional de Ingeniera Pg. 67


Desarrollo de Aplicaciones con VBA

FUNCIONES NATIVAS
Espaol Ingls
ABS ABS
ACOS ACOS
ACOSH ACOSH
AHORA NOW
ALEATORIO.ENTRE RANDBETWEEN
ASC ASC
ASENO ASIN
ASENOH ASINH
ATAN ATAN
ATANH ATANH
PROMEDIO AVERAGE
PROMEDIO.SI AVERAGEIF
PROMEDIO.SI.CONJUNTO AVERAGEIFS
BDCONTAR DCOUNT
BDCONTARA DCOUNTA
BDDESVEST DSTDEV
BDDESVESTP DSTDEVP
BDEXTRAER DGET
BDMAX DMAX
BDMIN DMIN
BDPRODUCTO DPRODUCT
BDPROMEDIO DAVERAGE
BDSUMA DSUM
BDVAR DVAR
BDVARP DVARP
BINOM.CRIT CRITBINOM
BUSCAR LOOKUP
BUSCARH HLOOKUP
BUSCARV VLOOKUP
CODIGO CODE
COEF.DE.CORREL CORREL
COEFICIENTE.ASIMETRIA SKEW
COEFICIENTE.R2 RSQ
COINCIDIR MATCH
COMBINAT COMBIN
CONTAR COUNT
CONTARA COUNTA
CONTAR.BLANCO COUNTBLANK
CONTAR.SI COUNTIF
CONTAR.SI.CONJUNTO COUNTIFS

Universidad Nacional de Ingeniera Pg. 68


Desarrollo de Aplicaciones con VBA

Espaol Ingls
ERROR.TIPICO.XY STEYX
ESBLANCO ISBLANK
ESERR ISERR
ESLOGICO ISLOGICAL
ESNOD ISNA
ESNOTEXTO ISNONTEXT
ESPACIOS TRIM
ESREF ISREF
ESTEXTO ISTEXT
ESTIMACION.LINEAL LINEST
ESTIMACION.LOGARITMICA LOGEST
EXP EXP
FACT FACT
FISHER FISHER
FRECUENCIA FREQUENCY
GAMMA.LN GAMMALN
GRADOS DEGREES
HALLAR SEARCH
HALLARB SEARCHB
INDICE INDEX
INT.PAGO.DIR ISPMT
INTERSECCION INTERCEPT
INTERVALO.CONFIANZA CONFIDENCE
JERARQUIA RANK
K.ESIMO.MAYOR LARGE
K.ESIMO.MENOR SMALL
LIMPIAR CLEAN
LN LN
LOG LOG
LOG10 LOG10
MDETERM MDETERM
MAX MAX
MEDIA.ACOTADA TRIMMEAN
MEDIA.ARMO HARMEAN
MEDIA.GEOM GEOMEAN
MEDIANA MEDIAN
MES MONTH
MIN MIN
MINUTO MINUTE
MINVERSA MINVERSE
MMULT MMULT

Universidad Nacional de Ingeniera Pg. 69


Desarrollo de Aplicaciones con VBA

Espaol Ingls
MODA MODE
MONEDA DOLLAR
MULTIPLO.INFERIOR FLOOR
MULTIPLO.SUPERIOR CEILING
NEGBINOMDIST NEGBINOMDIST
NOMPROPIO PROPER
NORMALIZACION STANDARDIZE
NPER NPER
NSHORA TIME
NUMERO.ROMANO ROMAN
PAGO PMT
PAGOINT IPMT
PAGOPRIN PPMT
PEARSON PEARSON
PENDIENTE SLOPE
PERCENTIL PERCENTILE
PERMUTACIONES PERMUT
PI PI
POISSON POISSON
POTENCIA POWER
PROBABILIDAD PROB
PRODUCTO PRODUCT
PROMEDIO AVERAGE
PRONOSTICO FORECAST
PRUEBA.CHI CHITEST
PRUEBA.CHI.INV CHIINV
PRUEBA.F FTEST
PRUEBA.FISHER.INV FISHERINV
PRUEBA.T TTEST
PRUEBA.Z ZTEST
RADIANES RADIANS
RANGO.PERCENTIL PERCENTRANK
REDONDEA.IMPAR ODD
REDONDEA.PAR EVEN
REDONDEAR ROUND
REDONDEAR.MAS ROUNDUP
REDONDEAR.MENOS ROUNDDOWN
REEMPLAZAR REPLACE
REEMPLAZARB REPLACEB
REPETIR REPT
RESIDUO MOD

Universidad Nacional de Ingeniera Pg. 70


Desarrollo de Aplicaciones con VBA

Espaol Ingls
SEGUNDO SECOND
SENO SIN
SENOH SINH
SLN SLN
SUBTOTALES SUBTOTAL
SUMA SUM
SUMA.CUADRADOS SUMSQ
SUMAPRODUCTO SUMPRODUCT
SUMAR.SI SUMIF
SUMAR.SI.CONJUNTO SUMIFS
SUMAX2MASY2 SUMX2PY2
SUMAX2MENOSY2 SUMX2MY2
SUMAXMENOSY2 SUMXMY2
SUSTITUIR SUBSTITUTE
SYD SYD
TAN TAN
TANH TANH
TASA RATE
TENDENCIA TREND
TEXTO TEXT
TIR IRR
TIRM MIRR
TRANSPONER TRANSPOSE
USDOLLAR USDOLLAR
VA PV
VAR VAR
VARP VARP
VF FV
VNA NPV
XOR XOR
AGREGAR AGGREGATE
Y AND

Universidad Nacional de Ingeniera Pg. 71


Desarrollo de Aplicaciones con VBA

USO DE LA PROPIEDAD: FRMULA


Tambin puede usar las funciones de la hoja de Excel con la propiedad Frmula ya que permitir
mantener la misma estructura como se hace uso directamente en la hoja de Excel y podr usar
el nombre de la funcin en Espaol o Ingls segn como elija el formato, as por ejemplo se tiene:
Frmula: Con la propiedad Formula se utiliza la funcin en ingls
Range("B3").Formula = "=sum(B1:B2)"

Frmulalocal: Con la propiedad Formulalocal se utiliza la funcin en espaol


Range("B3").FormulaLocal = "=suma(B1:B2)"

FrmulaR1C1: Con la propiedad FormulaR1C1 se utiliza la funcin en ingls. El rango se


describe con respecto a la posicin de la fila y la columna a partir de la celda resultante

Range("B3").FormulaR1C1 = "=sum(R[-2]C[0]:R[-1]C[0])"
Inicio del rango Final del rango

R[-2] R[-1] C[0]


Indica el desplazamiento Indica que no hay
de filas y como es hacia desplazamiento
arriba se pone negativo por columnas

FrmulaR1C1Local: Con la propiedad FormulaR1C1Local se utiliza la funcin en espaol. El


rango se describe con respecto a la posicin de la fila y la columna a partir de la celda resultante

Range("B3").FormulaR1C1Local = "=suma(F1C2:F2C2)"

Toda frmula deber estar entre comillas luego de igualar en la celda donde se desea
tener el resultado. En cualquiera de los casos descritos el resultado devolver la frmula
en la celda especfica como su contenido real y a la vista estar el valor resultante.

Universidad Nacional de Ingeniera Pg. 72


Desarrollo de Aplicaciones con VBA

FUNCIONES DE LIBRERA EN VBA


Se denominan as a las funciones que ya estn definidas como las funciones propias de VBA
ya que se utilizan de forma directa a diferencia de las funciones nativas que se escriben como
ruta completa. Algunas funciones: Int, Round, Val, Date, etc.
SINTAXIS:
Nombre de la funcin(parmetros)
Por ejemplo: Si desea usar la funcin Redondear, la estructura sera:
Round(Number,[NumDigitsAfterDecimal As long])

FUNCIONES DE CONVERSIN DE TIPOS


Este grupo de funciones tiene por objetivo convertir una expresin a un tipo de dato especfico.
SINTAXIS:
Nombre de la funcin(expresin)
Por ejemplo: Si desea usar la funcin CInt, la estructura sera as:
CInt(Expression)As integer

Entre las funciones tenemos:


CBo<ol(expresin)............ Tipo devuelto Booleano
CByte(expresin) .............. Tipo devuelto Byte
CCur(expresin) ............... Tipo devuelto Currency
CDate(expresin) .............. Tipo devuelto Date
CDbl(expresin) ................ Tipo devuelto Double
CDec(expresin) ............... Tipo devuelto Decimal
CInt(expresin) ................. Tipo devuelto Integer
CLng(expresin) ............... Tipo devuelto Long
CSng(expresin) ............... Tipo devuelto Single
CStr(expresin)................. Tipo devuelto String
CVar(expresin) ................ Tipo devuelto Variant

Universidad Nacional de Ingeniera Pg. 73


Desarrollo de Aplicaciones con VBA

LISTA DE ALGUNAS FUNCIONES

Espaol Ingls
Izquierda Left
Derecha Right
Extraer Mid
Largo Len
Hallar Instr
Reemplazar Replace
Maysculas Ucase
Minsculas Lcase
Fila Row
Filas Rows
Columna Column
Columnas Columns
Valor Val

Entero Int
Redondear Round
Aleatorio Rnd
Error Error

Ao Year
Mes Month
Da Day
Agregar nmero de das DateAdd
Fecha Date
Fechanumero Datevalue
Fecha y Hora actual Now
Hora actual Time
Hora Hour
Minuto Minute
Segundo Second
Extrae la fecha Timevalue

Universidad Nacional de Ingeniera Pg. 74


Desarrollo de Aplicaciones con VBA

FUNCIONES UDF (FUNCIONES DEFINIDAS POR EL USUARIO)


Es conocida como Funcin Definida por el Usuario, UDF por sus siglas en ingls, y una vez
creada puede ser utilizada de la misma manera que las funciones incluidas en Excel como la
funcin SUMA o la funcin BUSCARV. Esto hace que las funciones UDF sean una
herramienta muy poderosa. La creacin de las funciones UDF se describen a continuacin

Procedimiento Function, Parmetros de la


Nombre de la Valor de retorno.
indica que se est funcin definido
funcin Tipo de dato como se
creando una funcin con el tipo de dato
mostrar el resultado

Function SALARIOS(horas As Integer, tarifa As Currency) as Double


bruto = horas * tarifa
impuesto = 0.12 * bruto Escribir las
SALARIOS = bruto - impuesto Instrucciones que
End Function ejecutar la funcin

Procedimiento End Function,


indica la detencin de la funcin

DESCRIPCIN:
LA PALABRA CLAVE FUNCTION.- La primera lnea de cdigo comienza con la palabra
Function la cual define el inicio de la funcin.
EL NOMBRE DE LA FUNCION.- Inmediatamente despus de la palabra clave Function se
debe especificar el nombre de la funcin seguida de parntesis que de manera opcional
pueden contener una lista de parmetros.
PARMETROS DE UNA FUNCIN VBA.- Los parmetros (tambin son variables), son el
medio por el cual pasa informacin de entrada a la funcin. Algunas funciones necesitarn de
dichas entradas para realizar algn clculo y algunas otras no, es por ello que los parmetros
de una funcin son opcionales. Puede incluir tantos parmetros como sean necesarios y
solamente debe recordar separarlos por una coma por ejemplo: (cantidad as integer,
descuento as double)
VALOR DE RETORNO.- La caracterstica principal de una funcin es que puede regresar un
valor. Es por eso que al definir una funcin se debe indicar el tipo del valor de retorno que
tendr dicha funcin y est especificado por las palabras As y el nombre de la variable o el
tipo de dato que aparecen despus de los parntesis como por ejemplo: nombre de
funcion(parmetros)As Double
CUERPO DE LA FUNCIN VBA.- Una vez definida la funcin se pueden especificar todas
las instrucciones que sern ejecutadas.
RETORNANDO EL VALOR.- Una vez que se ha hecho los clculos necesarios, es
importante regresar el valor. Para hacerlo iguale el nombre de la funcin al valor o variable
que contiene el valor que se desea regresar.
TERMINO DE LA FUNCIN.- Como ltima lnea de cdigo verifique que diga End Function.

Universidad Nacional de Ingeniera Pg. 75


Desarrollo de Aplicaciones con VBA

Ejemplo1: Crear una funcin que halle la raz cbica de un nmero

Probando la funcin VBA

Ejemplo2: Crear una funcin que calcule el tiempo transcurrido en aos

Probando la funcin

Ejemplo3: Crear una funcin que permita hallar el total de un rango de datos

Probando la funcin VBA

Universidad Nacional de Ingeniera Pg. 76


Desarrollo de Aplicaciones con VBA

Ejemplo4: Crear una funcin que calcule el incremento de la masa corporal de una persona
a partir de la siguiente frmula: peso/(talla)

Probando la funcin VBA utilizando el cuadro de dilogo insertar Funcin


1. Digite el nombre de la funcin y
agregue el parntesis de apertura

2. Seleccione la ficha Frmulas / hacer un clic en el icono Insertar Funcin

3. En el cuadro Peso seleccione la celda que contiene el dato respectivo y hacer lo mismo en
el cuadro talla.

4. Presione el botn Aceptar


para mostrar el resultado

5. Si lo edita se mostrara as:

Universidad Nacional de Ingeniera Pg. 77


Desarrollo de Aplicaciones con VBA

APLICACIONES
VENTA DE PRODUCTOS
Elaborar el siguiente modelo de formulario en la ventana del Editor de Visual Basic utilizando
los siguientes controles:
Etiqueta para ttulos VENTA DE PRODUCTOS, Producto, Cantidad, 10% descuento y A Pagar.
Para los siguientes controles cambiar la propiedad Name por el nombre que se indica a
continuacin

Cuadro combinado Producto


CboProducto

Cuadro de texto Cantidad TxtCantidad


Etiqueta Subtotal lblSubtotal
Etiqueta Descuento lblDescuento
Etiqueta Neto lblNeto
Botones CmdCalcular, CmdBorrar, CmdRegistrar, CmdSalir

Programar en el formulario para mostrar la lista de los productos y los valores predeterminados

Declarar los tipos de datos de forma pblica para utilizar en las lneas de cdigo que se requiera.

El signo @ es la abreviatura para declarar la variable como dato de tipo moneda

Universidad Nacional de Ingeniera Pg. 78


Desarrollo de Aplicaciones con VBA

Programar el botn Calcular

Programar el botn Borrar para limpiar todos los controles y empezar con un nuevo registro

Programar el botn Registrar

Universidad Nacional de Ingeniera Pg. 79


Desarrollo de Aplicaciones con VBA

Programar el botn Salir para cerrar el formulario

Elaborar el siguiente diseo en la hoja de Excel

Programar el botn VENTAS para mostrar el Formulario VENTA DE PRODUCTOS


(Previamente cambiar la propiedad Name del Formulario por el nombre frmventa)

Registrar los productos

Universidad Nacional de Ingeniera Pg. 80


Desarrollo de Aplicaciones con VBA

REGISTRO DE PRODUCTOS
Elaborar un pequeo sistema en la cual permita registrar los productos en la hoja (hoja2) y si el
producto ya existe que muestre un mensaje respectivo evitando as registrar valores duplicados
Programar el formulario PRODUCTOS considerando lo siguiente:
* Cuando ingrese el nombre del producto, al presionar ENTER o PASAR A OTRO CUADRO
deber crear el cdigo para el producto con:
- la 1ra letra del nombre del producto
- la ltima letra del producto
- 2 letras del nombre del producto a partir de la posicin 3
- el total de caracteres del producto
NOTA: todo debe mostrarse en maysculas

* Al ingresar el valor del precio, al presionar ENTER o PASAR A OTRO CUADRO deber
mostrarse con el formato de moneda en soles alineado a la derecha del cuadro

* Al ingresar la fecha tambin deber mostrarse con el formato de fecha alineado a la derecha

* Botn NUEVO, debe borrar el contenido de cada cuadro y colocar el cursor en el cuadro de
texto del producto

* Botn REGISTRAR debe guardar los datos de los cuadros en la Hoja2 a partir de la celda
A2 y mostrar un mensaje indicando que se han guardado correctamente

Universidad Nacional de Ingeniera Pg. 81


Desarrollo de Aplicaciones con VBA

* Botn SALIR; debe mostrar un mensaje que pregunte si realmente desea cerrar el formulario
o no

Universidad Nacional de Ingeniera Pg. 82


Desarrollo de Aplicaciones con VBA

VENTA DE CAMISAS
Hacer un pequeo sistema que permita calcular el monto a pagar por la compra de N buzos
en un bazar. Se sabe que el precio de venta es de S/ 65.00 por buzo, pero existe un descuento
del 12% si se compran ms de 5 buzos.

CONVERTIDOR DE MONEDAS
Elaborar el siguiente formulario y programar
para que calcule y convierta el valor
monetario ingresado. Utilizar los valores de
conversin de la fecha actual en la cual
elabora el formulario.

REGISTRO DE EVALUACIN
Crear un sistema que permita ingresar datos por medio del teclado para registrar las notas del
alumno (prcticas, trabajos y examen final) una vez ingresado los datos deber mostrar el
promedio en una celda aparte Insertar dos objetos de control para ejecutar el sistema. El
primero para registrar datos y el segundo para borrar los datos ingresados.

Universidad Nacional de Ingeniera Pg. 83


Desarrollo de Aplicaciones con VBA

CONSULTA DE FACTURAS
En la siguiente base de datos se desea hacer ciertas consultas y conforme se seleccione la
opcin deber mostrar una ventana emergente en la cual solicite el dato de la consulta como
por ejemplo el nombre del cliente, a partir de que monto o un monto especfico, el nombre del
vendedor, zona de consulta o una fecha especfica, etc. Programar el botn Filtrar para que
muestre los datos segn el botn de opcin seleccionado.

FORMULARIO DE ACCESO
Elaborar el siguiente formulario y
programar tomando en cuenta lo siguiente:
El botn con el grfico del Ojito, al presionar
deber mostrar el dato ingresado en el
campo contrasea, por ejemplo: 1234, y
cuando suelte deber mostrar la mscara
aplicada en el campo por ejemplo: ****.
El botn Aceptar deber mostrar el
mensaje Bienvenido a Creaciones
Azucena cuando el nombre del usuario y la contrasea sean las correctas ocultando el
formulario respectivo y mostrando un siguiente formulario, sino coinciden deber mostrar el
mensaje: Usuario o contrasea incorrecto y a su vez borrar todos los datos ingresados en
cada campo. Si en un tercer intento no ha ingresado correctamente los datos deber cerrarse
completamente la aplicacin.
El botn Salir deber cerrar la aplicacin completamente.

Universidad Nacional de Ingeniera Pg. 84


Desarrollo de Aplicaciones con VBA

AGENDA PERSONAL
Elaborar el siguiente Formulario y programar los botones respectivos tomando en cuenta lo
siguiente:
El botn Nuevo limpiar todo registro que haya en cada cuadro de texto y a su vez colocar
el cursor en el 1er cuadro de texto.
El botn Guardar almacenar los datos en la hoja de clculo de Excel. Si no ha ingresado
dato alguno deber mostrar el mensaje No deje campos en blanco. Si el 1er dato ingresado
ya existe deber mostrar el mensaje El Dato ya existe intntelo de nuevo
El botn Buscar realizar una bsqueda comparando los datos del primer campo (cuadro de
texto) con los datos de la 1ra columna en la hoja de Excel y si no encuentra que muestre el
mensaje El dato no fue encontrado. Adems si la bsqueda se hace sin haber ingresado el
primer dato entonces el mensaje a mostrar ser: Aun no buscas ningn dato. En el caso de
que encuentre el dato deber mostrar rellenar el resto de los campos (cuadros de texto)
El botn Eliminar mostrar el mensaje: Ests seguro de eliminar el registro elegido?, si
confirma se eliminar completamente de la hoja de Excel y si no confirma deber mostrar el
mensaje: Operacin cancelada.

NOTA: Los datos registrados sern nicos no habiendo duplicados y ser en relacin al
nombre ingresado.

Universidad Nacional de Ingeniera Pg. 85


Desarrollo de Aplicaciones con VBA

FILTROS EN FORMULARIOS
Elaborar un pequeo sistema que permita registrar la venta de los productos en una nueva
hoja y que muestre la imagen segn el producto seleccionado. Adems en el mismo formulario
que muestre la lista de productos vendidos segn el nombre del producto seleccionado
cuando presione el botn para filtrar.

Universidad Nacional de Ingeniera Pg. 86


Desarrollo de Aplicaciones con VBA

CONTROL DE INGRESOS Y GASTOS


Elaborar el siguiente modelo en la hoja de Excel aplicando formato de celdas y aadiendo
algunos objetos de formas como complemento del diseo as como tambin imgenes.

Asignar una macro al texto aviso legal para que cuando se haga un clic que muestre una
ventana flotante de Aviso Legal como muestra la imagen siguiente

Asignar una macro al texto y/o imagen Salir para que muestre un mensaje solicitando guardar,
no guardar y cancelar

Universidad Nacional de Ingeniera Pg. 87


Desarrollo de Aplicaciones con VBA

Vincular los botones: Detalle de Conceptos, Introduccin de ingresos y gastos, informe por
Fecha, informe por Detalle con sus hojas respectivas.

Elaborar el siguiente diseo en las hojas siguientes

Universidad Nacional de Ingeniera Pg. 88


Desarrollo de Aplicaciones con VBA

Asignar una macro al texto Ayuda y la imagen respectiva para que muestre la ventana con
algunas indicaciones sobre como ingresar datos en las hojas.

Universidad Nacional de Ingeniera Pg. 89


Desarrollo de Aplicaciones con VBA

INDICE
Editor de visual basic ............................................................................................................ 5
Descripcion del editor de visual basic .................................................................................... 6
ventanas de proyectos ....................................................................................................... 7
ventana cdigo ............................................................................................................... 7
ventana formularios ........................................................................................................ 9
Procedimientos y principios fundamentales ..........................................................................10
procedimientos y tipos ......................................................................................................10
principios fundamentales ..................................................................................................10
Macros .................................................................................................................................12
crear una macro (el procedimiento sub) ............................................................................12
macro desde la ventana de cdigo ...................................................................................12
macro en un botn de comando (control activex) ..............................................................13
Seguridad de macros ...........................................................................................................14
Guardar archivos con macros...............................................................................................14
Programar en el editor de visual basic ..................................................................................15
el objeto contenedor y el contenido...................................................................................15
uso de los objetos, propiedades y mtodos ......................................................................15
ver todas las propiedades y mtodos................................................................................16
utilizar la ruta completa para programar ............................................................................17
conjunto de instrucciones para un objeto ..........................................................................17
uso de la instruccin with ..................................................................................................17
objetos predeterminados ..................................................................................................17
Objeto range ........................................................................................................................18
select (seleccin) ..............................................................................................................18
selection ...........................................................................................................................19
value .................................................................................................................................19
copiar / pegar ....................................................................................................................20
limpiar ...............................................................................................................................20
Cells (celda) .........................................................................................................................21
una celda ..........................................................................................................................21
un rango de celdas ...........................................................................................................21
ventaja del objeto cells......................................................................................................21
Consejos para la escritura del cdigo ...................................................................................22
comentarios ......................................................................................................................22
caracteres de continuacin ...............................................................................................22
aadir sangras .................................................................................................................22
nombres de procedimientos, variables y constantes. ........................................................22

Universidad Nacional de Ingeniera Pg. 90


Desarrollo de Aplicaciones con VBA

Msgbox ................................................................................................................................23
mensaje simple .................................................................................................................24
mensaje de un valor ingresado en una celda ....................................................................24
mensaje en lneas .............................................................................................................24
mensaje con botones si / no .............................................................................................24
Inputbox ...............................................................................................................................25
valor por defecto (default) .................................................................................................26
informacin en lneas ........................................................................................................26
Errores de macros ................................................................................................................27
errores de digitacin .........................................................................................................27
variables no declaradas ....................................................................................................27
corregir errores .................................................................................................................28
depurar lneas de cdigo ..................................................................................................28
Variables ..............................................................................................................................29
declarar variables a objetos ..............................................................................................29
reglas ................................................................................................................................30
tipos de variables ..............................................................................................................30
integer (entero)..............................................................................................................30
double (doble) ...............................................................................................................30
string (texto) (cadena) ...................................................................................................30
currency (moneda) ........................................................................................................30
boolean (lgica) .............................................................................................................31
otros ..............................................................................................................................31
option explicit ....................................................................................................................31
variable local .................................................................................................................31
variable predeterminada ................................................................................................31
Programacin bsica ............................................................................................................32
libros .................................................................................................................................32
hojas .................................................................................................................................32
Controles de formulario ........................................................................................................33
tipos de controles de formulario ........................................................................................33
controles activex ...............................................................................................................33
diferencia entre controles de formulario y controles activex ..............................................33
propiedades de los controles activex ................................................................................34
controles activex con subrutinas vba ................................................................................34
control cuadro de texto ..................................................................................................35
control cuadro de lista ...................................................................................................35
control cuadro combinado .............................................................................................35

Universidad Nacional de Ingeniera Pg. 91


Desarrollo de Aplicaciones con VBA

control casilla de verificacin .........................................................................................35


control botn de opcin .................................................................................................35
Formularios en vba...............................................................................................................36
crear un formulario en excel..............................................................................................36
mostrar/ocultar cuadro de herramientas............................................................................36
controles del cuadro de herramientas ...............................................................................37
diseo de un formulario ....................................................................................................38
cambiar nombres a los controles ......................................................................................38
modelos de formularios.....................................................................................................39
abrir formularios desde la hoja de clculo .........................................................................40
Programando controles de formulario...................................................................................41
cuadro de texto (textbox) ..................................................................................................41
cuadro combinado (combobox) .........................................................................................42
cuadro de lista (listbox) .....................................................................................................43
casilla de verificacin (checkbox) ......................................................................................44
botn de opcin (optionbutton) .........................................................................................44
control de nmero (spinbutton) .........................................................................................44
imagen (image) .................................................................................................................44
botn de comando (commandbutton) ...............................................................................45
formulario (userform1) ......................................................................................................45
Aplicaciones .........................................................................................................................46
mostrar/ocultar tablas .......................................................................................................46
prstamo a clientes ...........................................................................................................47
pago al personal ...............................................................................................................49
paleta de colores ..............................................................................................................51
voto electrnico.................................................................................................................53
lista que depende de otra lista ..........................................................................................54
Estructuras de decisin ........................................................................................................56
if then else ........................................................................................................................56
if then ............................................................................................................................56
if....then...else (si( , ... , ...)) ........................................................................................56
if....then...elseif (si, ,si( , ))) .................................................................................57
if and (si(y()) ..............................................................................................................57
if or (si(o()) .................................................................................................................57
select case........................................................................................................................58
case is ...........................................................................................................................58
case to ..........................................................................................................................58
delimitar valores ............................................................................................................58
declarando variables .....................................................................................................59

Universidad Nacional de Ingeniera Pg. 92


Desarrollo de Aplicaciones con VBA

Bucles de repeticin .............................................................................................................60


for next .........................................................................................................................60
while wend ........................................................................................................................62
do while loop .....................................................................................................................63
do until ... loop ..................................................................................................................64
do ... loop while .................................................................................................................64
do ... loop until ..................................................................................................................64
for-each-in-next.................................................................................................................65
Funciones.............................................................................................................................67
definicin ..........................................................................................................................67
funciones nativas ..............................................................................................................67
uso de la propiedad: frmula .........................................................................................72
funciones de librera en vba ..............................................................................................73
funciones de conversin de tipos ..................................................................................73
funciones udf (funciones definidas por el usuario) ............................................................75
Aplicaciones .........................................................................................................................78
venta de productos ........................................................................................................78
registro de productos.....................................................................................................81
venta de camisas ..........................................................................................................83
convertidor de monedas ................................................................................................83
registro de evaluacin ...................................................................................................83
consulta de facturas ......................................................................................................84
formulario de acceso .....................................................................................................84
agenda personal ...........................................................................................................85
filtros en formularios ......................................................................................................86
control de ingresos y gastos ..........................................................................................87

Universidad Nacional de Ingeniera Pg. 93

Potrebbero piacerti anche