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:
'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.