Você está na página 1de 18

Visual Basic for Applications CAPITULO II

Autor: ng. CIlmer Salas |adera Pagina N 1





CAPITULO II



Modelo de Objetos de Excel
Estructura Secuencial
Variables, Tipo de Datos
Estructura de una Aplicacin VBA
Fundamentos del manejo del Cdigo
Terminologa VBA
Formulario y Objetos
Caso desarrollado
Casos Propuestos 1,2


Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 2
Modelo Objeto de Excel
VBA soporta un conjunto de objetos de Excel, desde aqu se podr personalizar todo el entorno
de Excel haremos una lista de estos controles:

Objeto Application
Representa la propia aplicacin Excel. El objeto Application expone
una gran cantidad de informacin sobre la aplicacin en ejecucin, las
opciones aplicadas a esa instancia y los objetos de usuario abiertos en
la instancia en cada momento
Ejemplos
- Asignar un Titulo a la Aplicacin
Application.Caption = "Titulo de la Ventana Activa"

- Mostrar en Tamao normal la Ventana de la Aplicacin
Application.WindowState = xlNormal

- Mostrar en Maximizado la Ventana de la Aplicacin
Application.WindowState = xlMaximized

- Metodo para Salir de una Aplicacin
Application.Quit
Ejemplos a Nivel de
Modulo y/o
WorkBook Open
- Mostrar la Impresora activa
Sub DevolverImpresoraActiva()
Dim ImpresoraActiva As String
ImpresoraActiva = Application.ActivePrinter
MsgBox ImpresoraActiva
End Sub

- Limitar el acceso a un Usuario Pre-determinado
Sub UsuarioAceptado()
Dim Usuario As String, Clave As String
Usuario = InputBox("Ingrese Nombre de Usuario")
Clave = InputBox("ingrese su Clave de Acceso")

If Usuario = "Administrador" And Clave = "123" Then
MsgBox "Bienvenido: " & Usuario
Else
MsgBox "Usuario NO Registrado"
Application.Quit
End If
End Sub


Objeto WorkBooks Representa un solo libro en la aplicacin Excel.
Ejemplos
- Cerrar un Libro
WorkBooks.Close

- Aadir un Libro
WorkBooks.Add

- Aperturar un Libro previamente guardado
WorkBooks.Open FileName:=NombreArchivoExcel
WorkBooks.Open FileName:=NombreArchivoExcel,ReadOnly:=True

Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 3
Objeto WorkSheets
Representa a una hoja del Libro activo, se puede trabajar con
WorkSheets o simplemente Sheets.
Ejemplos
- Aadir una Hoja al Final de las Hojas
Worksheets.Add Count:=1, after:=Sheets(WorkSheets.Count)

- Ocultar la Hoja2
Worksheets(2).Visible=False

- Hacer que la Hoja3 sea la Hoja Activa
Sheets(3).Activate
- Procedimiento que aada una hoja al final de las hojas y que
devuelva la activacin a la Hoja 1
Sub AgregaHoja()
sheets.Add Count:=1, after:=Sheets(Worksheets.Count)
sheets(1).Activate
End Sub

Objeto Range
Representa a una celda, Rango de Celdas, una fila entera o una
columna entera.
Ejemplos
- Asignar el Valor a la Celda A10 de la Hoja 2
WorkSheets(2).Range(A10).Value=2.85

- Asignar la Formula Max(A1,A2) a la Celda B10 de la Hoja
activa
Range(B10).Formula==MAX(A1,A2)

- Asignar el Valor 100 a las Celdas A1 hasta A10
Range(A1:A10).Value=100


Capturando la ltima columna llena
Esta funcin permitir determinar cual es el ultimo registro lleno para poder seguir llenando.
FORMATO:




UTILIZAR: Rows.Count Determinar la Ultima Fila
Ejm: uFila=Sheets(1).Cells(Rows.Count,2).End(xlUP).Offset(1,0).Row
Worksheets(1).Cells(uFila, 2).Value = Torres Lazaro, Angela


uFila=Sheets(NHoja).Cells(Fila,Columna).End(xlUP).Offset(AumentoF,AumentoC).Row
Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 4
Estructura Secuencial
Es aquella en la que una instruccin sigue a otra en secuencia. Las tareas se suceden de tal modo
que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final de proceso.

FORMA:









Variables:
- Es un objeto del cdigo cuya misin consiste en almacenar un valor que puede modificarse
a lo largo de la ejecucin del programa.
- Puede contener distintos tipos de Datos
- El nombre de la Variable debe empezar con una Letra y no exceder a 255 caracteres.
- Pueden definirse de modo que estn disponibles para otras partes del programa.


DECLARACIN DE VARIABLE
Forma:

Alcance Nombre As Tipo_Datos

a. ALCANCE
Indica en que lugar de la aplicacin utilizara la variable, pueden ser:

Dim
Se utiliza a nivel de Procedimiento y a nivel de Formulario, cada vez que
utiliza el procedimiento VBA borra el contenido de la variable.
Static
Utilizado solo a nivel de Procedimiento, cuando una variable se declara
conserva su valor entre llamadas.
Public La variable ser reconocida a nivel de la Aplicacin.
Private
Solo a nivel modulo es decir solo ser reconocida dentro del modulo
donde fue declarada.








INICIO
Instruccin1
Instruccin2

InstruccionN
FIN
Instruccin1
Instruccin2
Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 5
Tipo de Datos
A. DATOS NUMERICOS
Es el conjunto de los valores numricos, pueden representarse de las siguientes formas:









B. DATOS CADENA
Es una sucesin de caracteres que se encuentran delimitados por doble comillas.
Ejm:
Declarar la Variable Nombre Dim Nombre as String
Asignando un Valor a Nombre Nombre=Jose Maria Jess

C. DATOS BOOLEANOS
El tipo lgico es aquel que solo puede tomar uno de dos valores.
Formato:
Si Verdadero 1
No Falso 0

Ejm:
Declarar la Variable Dim Sexo as Boolean
Asignando un Valor a Sexo Sexo=TRUE

D. DATOS TIPO FECHA
Permite reconocer el dato de tipo Fecha o Fecha y Hora.
Ejm:
Declarar la Variable
Dim FechaVencimiento as Date
Asignando una Fecha
FechaVencimiento=#24/05/2012#

Tipo Descripcin Rango
Byte 1 Byte 0255
Integer (%) Entero -32768 a +32767
Long (&) Entero Largo -2147483648 a +2147483647
Single (!) Real Simple -3.40E+38 a 3.40E+38
Double (#) Real Doble -1.79D+308 a 1.79D+308
Currency (@) Numero con punto
decimal fijo.
-9.22E+14 a 9.22E+14

Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 6
Estructura de una aplicacin en VBA
Pasos para crear una aplicacin:

1. Crear la interfaz de usuario
Usted crea una interfaz dibujando controles y objetos sobre un formulario. A fin de hacer
que su cdigo sea ms fcil de leer y depurar, debe luego asignar nombres a los objetos
usando convenciones de nombres estndar.

2. Establecer las propiedades de los objetos de la interfaz
Luego de aadir objetos al formulario, se establece las propiedades de los objetos. Puede
establecer valores iniciales ya sea usando la ventana de propiedades en tiempo de diseo o
escribiendo cdigo para modificar las propiedades en tiempo de ejecucin.



3. Escribir cdigo para los eventos
Luego de establecer las propiedades iniciales para el formulario y cada objeto, aada el
cdigo que se ejecutar en respuesta a los eventos. Los eventos ocurren cuando diferentes
acciones ocurren sobre un control u objeto. Por ejemplo, clic es un evento que puede
ocurrir para un botn de comando.

4. Guardar el proyecto
Cuando crea el proyecto, asegrese de darle un nombre usando el comando Guardar
Proyecto como del men Archivo. Guarde su proyecto frecuentemente conforme aada
cdigo. Al guardar un proyecto se guardan cada formulario y mdulo de cdigo en el
proyecto.

5. Probar y depurar la aplicacin
Conforme aada cdigo al proyecto, puede usar el comando Iniciar en la Barra de
Herramientas para ejecutar su aplicacin y ver su comportamiento. Tambin puede usar
las herramientas de depuracin para verificar errores y modificar cdigo.


Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 7
FUNDAMENTOS DEL MANEJO DE CDIGO
Se crea codificacin solo a los controles que tienen algn trabajo que realizar.
Pasos:
- Seleccionar el Control
- F7 | 2 Clic sobre el Control | Ver Cdigo










TERMINOLOGA DE VBA
Conforme trabaje con VBA, necesitar estar familiarizado con los siguientes trminos:
TRMINO DEFINICIN

Tiempo de diseo Es el momento en el que se construye la aplicacin.
Tiempo de ejecucin Es el momento en el cual ejecutamos e interactuamos con la
aplicacin como lo hara el usuario.
Formulario Un formulario sirve como una ventana que puede personalizar como
la interfaz de su aplicacin o como un cuadro de dilogo que usa para
obtener informacin del usuario. Un formulario puede existir
individualmente o puede servir como un documento dentro de una
interfaz de documento mltiple.

TRMINO DEFINICIN
Controles Representacin grfica de objetos tales como botones, cuadros de
lista, cuadros de edicin, etc., con los que el usuario interacta para
proporcionar informacin a la aplicacin.

Objetos Un trmino general usado para describir todos los formularios y
controles que forman parte de la aplicacin.

Propiedades Los valores de un objeto, tales como tamao, ttulo, color, etc.

Mtodos Las acciones que un objeto puede realizar sobre s mismo.

Eventos Son acciones reconocidas por un formulario o control. Los eventos
ocurren a medida que el usuario interacta con los objetos de la
aplicacin.


Lista de Controles
Lista de Eventos
Colocar Cdigo - Codificar
Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 8
CONVENCIONES PARA LOS NOMBRES DE LOS OBJETOS
Los objetos deben llevar nombres con un prefijo coherente que facilite la identificacin del tipo
de objeto. A continuacin se ofrece una lista de convenciones recomendadas para algunos de los
objetos permitidos poro Visual Basic.

TIPO DE CONTROL PREFIJO EJEMPLO
Casilla de verificacin chk chkSloLectura
Cuadro combinado, cuadro lista desplegable cbo cboIngls
Botn de comando cmd cmdSalir
Formulario frm frmEntrada
Marco fra fraLenguaje
Imagen (Image) img imgIcono
Etiqueta lbl lblMsjAyuda
Cuadro de lista lst lstCdigoDePoltica
MS Tab mst mstPrimero
Imagen (Picture) pic picVGA
Cuadro de texto txt txtApellido

Formularios
El formulario es el principal medio de comunicacin entre el usuario y la aplicacin. Los usuarios
interactan con los controles sobre el formulario para ingresarle datos y obtener resultados.

Opciones:
Insertar un Formulario
Dentro de VBA Men InsertarUserForm.

Clic derecho sobre la Ventana Exploradora de Proyectos,
seleccionar UserForm.
Eliminar un formulario del
Proyecto
Clic derecho sobre el Formulario dentro de la Ventana
Exploradora de Proyectos Seleccionar Quitar UserForm

Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 9
Asignar Nombre al
Formulario
- Seleccionar el UserForm de la Ventana Exploradora de
Proyectos.

- En la propiedad NAME modificar el nombre a frmNombre

PROPIEDADES
BackColor Color de fondo del formulario.
BorderStyle Estilo del borde del formulario.
Caption Texto en la barra de ttulo del formulario.
Enabled True/False. Determina si est habilitado para responder a las
acciones del usuario.
Name Nombre del formulario.
EVENTOS
Activate Ocurre cuando el formulario se convierte en la ventana activa.
Click Ocurre cuando hace clic sobre el formulario.
Deactivate Ocurre cuando el formulario deja de ser la ventana activa.
MTODOS
Hide Oculta el formulario.
SetFocus Le entrega el enfoque al formulario.
Show Hace visible el formulario.

Ventana Exploradora de Proyectos
Desde aqu se tendr el control total de los objetos del Proyecto, adems de las Hojas (WorkBook)
del Libro de Excel (WorkSheets).



Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 10
Opciones:
Activar la Ventana
Exploradora de Proyectos
CTRL + R

Men Ver Explorador de Proyectos
Alternar Vistas de Objetos
Clic en para mostrar:




Propiedades
Aqu se muestra una lista de propiedades propias del objeto seleccionado es decir las propiedades
mostradas sern dinmicamente mostradas.



Opciones:
Activar cuadro de
herramientas
F4

Men Ver Ventana de Propiedades

Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 11
Controles Bsicos



















Con los controles, los usuarios pueden operar y obtener los resultados de una aplicacin. Puede
aadir controles a un formulario seleccionando la herramienta adecuada del Cuadro de
Herramientas. Entre los controles ms comunes a utilizar en una aplicacin tenemos: Etiqueta
(Etiqueta), Cuadro de Texto (Cuadro de Texto) y Botn de Comando (Botn de Comando).



Control Etiqueta (Label)
Se utiliza para mostrar texto que el usuario no puede modificar. Generalmente para identificar
otros controles en el formulario o para mostrar instrucciones al usuario.

PROPIEDADES
AutoSize True/False. Determina si el tamao del control se ajusta automticamente
al texto que contiene.
Caption Texto que muestra el control.
Name Nombre del control.
Font Establece la fuente, estilo y tamao para el texto del control.


Control
Etiqueta
Control Cuadro
de Texto
Control Botn de
Comando
Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 12
Control Cuadro de Texto (Textbox)
Se utiliza para que el usuario le proporcione datos a la aplicacin o para que la aplicacin le
devuelva la informacin al usuario. El texto que se muestra en el control puede ser cambiado por
el usuario.
PROPIEDADES
Enabled True/False. Establece un valor que determina si el control puede responder
a eventos generados por el usuario.
Font Establece la fuentes, estilo y tamao para el texto del control.
Locked True/False. Determina si es posible modificar el texto en el control.
MaxLength Establece la longitud mxima permitida para el texto en el control.
MultiLine Establece si el control puede aceptar mltiples lneas de texto.
Name Nombre del control.
PasswordChar Carcter utilizado para ocultar el texto que realmente contiene el
control.
Text Texto que realmente contiene y muestra el control.
Visible Establece si el control ser visible para el usuario.
EVENTOS
Change Ocurre cuando cambia el texto que contiene el control.
GotFocus Ocurre cuando el control recibe el enfoque.
KeyDown Ocurre cuando el usuario presiona una tecla mientras el control tiene el
enfoque.
LostFocus Ocurre cuando el control pierde el enfoque.
MTODOS
Refresh Actualiza el texto del control.
SetFocus Mueve el enfoque al control.

Control Botn de Comando (Commandbutton)
Permite que la aplicacin inicie, interrumpa o termine un proceso.
PROPIEDADES
Cancel True/False. Establece si el botn se comportar como el botn cancelar en el
formulario y se invocar su evento Click cada vez que se presione la
tecla ESC.
Caption Establece el texto que muestra el botn.
DefaultTrue/False. Establece si el botn se comportar como el botn predeterminado
en el formulario.
Font Establece la fuente, estilo y tamao para el texto del control.
Name Nombre del botn.
Visible True/False. Establece si el botn ser visible para el usuario.
EVENTOS
Click Ocurre cuando se hace clic sobre el botn.
MTODOS
SetFocus Mueve el enfoque al botn.
Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 13
Caso Desarrollado
Se necesita tener un control de las Ventas realizadas por una Empresa de Electrodomsticos el
cual necesita tener la informacin en Excel de la siguiente forma:



Por tal motivo se necesita un formulario en VBA que permite ingresar el Nombre del Producto,
Precio y la cantidad comprada para poder determinar:

- El Subtotal de la compra
- El Descuento del 10% sobre el Subtotal
- El Neto de la Compra es decir el Subtotal con Descuento

Formulario en Tiempo de Diseo sin Propiedades




Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 14
Aplique las siguientes propiedades:

UserForm
Name: frmVenta
Caption: Venta de Productos VBA
Label1
Caption: Venta de Productos
Autosize:True
BackStyle: 1-fmBackStyleOpaque
Font: ARIAL NEGRITA
Label2
Caption: Producto
Autosize: True
BackStyle: 1-fmBackStyleOpaque
Label3
Caption: Precio
Autosize: True
BackStyle: 1-fmBackStyleOpaque
Label4
Caption: Cantidad Comprada
Autosize: True
BackStyle: 1-fmBackStyleOpaque
Label5
Caption: Subtotal
Autosize: True
BackStyle: 1-fmBackStyleOpaque
Label6
Caption: Descuento
Autosize: True
BackStyle: 1-fmBackStyleOpaque
Label7
Caption: TOTAL DE PAGAR
Autosize: True
BackStyle: 1-fmBackStyleOpaque
Label8
Name: lblST
Caption:
Label9
Name: lblDesc
Caption:
Label10
Name: lblTP
Caption:
Text1 Name: txtProducto
Text2 Name: txtPrecio
Text3 Name: txtCantidad
CommanButton1
Name: cmdCalcular
Default: True
Caption: Calcular
CommanButton2
Name: cmdOtro
Caption: Otra Venta
CommanButton3
Name: cmdSalir
Cancel: True
Caption: Salir









Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 15
Al final el UserForm deber quedar de la siguiente forma:



Cdigo de los objetos
B
O
T
O
N

C
A
L
C
U
L
A
R

Private Sub CmdCalcular_Click()
'Capturando los datos ingresados para la operacin
Precio = Val(txtPrecio.Text)
Cantidad = Val(txtCantidad.Text)

'Proceso de Calculo
Subtotal = Precio * Cantidad
Descuento = Subtotal * 10 / 100
Neto = Subtotal - Descuento

'Impresiones de Resultados
lblST.Caption = Subtotal
lblDesc.Caption = Descuento
lblTP.Caption = Neto

'Enviando los datos a Excel
uFila = Sheets(2).Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Sheets(2).Cells(uFila, 2).Value = txtProducto.Text
Sheets(2).Cells(uFila, 3).Value = Precio
Sheets(2).Cells(uFila, 4).Value = Cantidad
Sheets(2).Cells(uFila, 5).Value = Subtotal
Sheets(2).Cells(uFila, 6).Value = Descuento
Sheets(2).Cells(uFila, 7).Value = Neto
End Sub



Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 16
B
O
T
O
N

O
T
R
A

V
E
N
T
A

Private Sub cmdOtro_Click()
TxtProducto.text=
TxtPrecio.Text=
TxtCantidad.Text=
LblSt.Caption=
LblDesc.Caption=
LblTP.Caption=
TxtProducto.SetFocus
End Sub
B
O
T
O
N

S
A
L
I
R

Private Sub cmdSalir_Click()
Saliendo de la Aplicacin sin aviso
End
End Sub

Grabar la Aplicacin :
Tener en cuenta que la aplicacin VBA no se debe grabar como un Libro normal de Excel se debe
habilitar la opcin Libro de Excel habilitado para macros al momento de grabar.
Adems se podr grabar desde el entorno VBA como desde el libro en Excel ya que estn
involucrados ambos en un entorno de programacin.





Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 17
Pasos para incorporar la aplicacin VBA en Excel

1. En el Libro de Excel acceder a la ficha: Programador
2. Seleccionar el objeto Botn del men Insertar


3. Arrastrar el objeto por la Hoja de Calculo y aparecer:


4. Desde aqu seleccionar Nuevo


Visual Basic for Applications CAPITULO II


Autor: Ing. Gilmer Salas Madera Pagina N 18
Casos Propuestos

1. Una empresa paga a sus vendedores un sueldo bsico mensual de S/.300. El sueldo bruto es
igual al sueldo bsico ms una comisin, que es igual al 9% del monto total vendido. Por
ley, todo vendedor se somete a un descuento del 11%. Disee una aplicacin que calcule la
comisin, el sueldo bruto, el descuento y el sueldo neto de un vendedor de la empresa.

2. Disee una aplicacin, para una empresa de ventas de piezas de automviles, que
determine el precio al que debe vender una pieza considerando un porcentaje de
ganancia. Para ello se leern el precio de compra de la pieza y el porcentaje de ganancia
que desea obtener la empresa en tanto por ciento.

3. Un club ha adquirido polos y gorras para sus socios con un descuento del 15% para los polos
y de 5% para las gorras. Disee una aplicacin que determine, en total, el importe de la
compra, el importe del descuento y el importe a pagar por la compra efectuada.

Você também pode gostar