Microsoft Excel y VBA Lic. Genaro Chiu Lam [email protected] Primera Parte Excel básico (8hrs.) “Un viaje de mil millas comienza con un primer paso” Curso de Microsoft Excel y VBA www.chconsultores.net 2 XLVBA: Primera parte Agenda: 1. Introducción al interfaz de Excel. 2. Tipos de datos. 3. Manipulación de libros, hojas y celdas. 4. Operaciones y reglas de precedencia. 5. Funciones básicas. 6. Herramientas básicas. 7. Elaboración de gráficos. 8. Caso práctico. Curso de Microsoft Excel y VBA www.chconsultores.net 3 XLVBA: Introducción al interfaz Fila Menú Nombre Barra de fórmulas Barra estándar Celda activa (Celdas) Barra de formato Hoja activa (Hojas) Columna Desplazador del libro Desplazador horizontal Barra de estado Curso de Microsoft Excel y VBA www.chconsultores.net Ayuda Desplazador vertical 4 XLVBA: Tipos de datos >> Tools - Format Cells • • • • • • • • • Número Moneda Porcentaje Contabilidad Fracción Científica Fecha y hora Texto Bolean Curso de Microsoft Excel y VBA www.chconsultores.net 5 XLVBA: Manipulación Operación (Operation) Seleccionar (Select) Teclas (Key) Una celda (Single Cell) <arrows> Un Rango (Single Range) <shft><arrows> Celdas discontinuas <ctrl> (Separate Cells) Rangos Discontinuos (Separate Ranges) Cortar y Pegar (Cut & Paste) Mover (Move) Select & Drag Curso de Microsoft Excel y VBA www.chconsultores.net <shft> <ctrl> <ctrl x> cortar (cut) <ctrl v> pegar (paste) [drag] arrastrar o dragar (drag) 6 XLVBA: Manipulación Operación (Operation) Teclas (Key) Copiar (Copy) Cross Drag <ctrl c> <ctrl v> [drag from cross] Autofill Cross Drag [drag] Toggle <ctrl><pg up> <ctrl><pg down> Continuous <shft> Separate <ctrl> Selección de Hojas (Sheet Selection) Curso de Microsoft Excel y VBA www.chconsultores.net 7 XLVBA: Agrupación de la información Según el tipo de información las hojas de cálculo pueden agrupar: • Bases de datos: Input Sheets Web Queries Database Queries • Procesamiento Functions Values by VBA • Reporte • Gráficas Curso de Microsoft Excel y VBA www.chconsultores.net 8 XLVBA: Caso práctico Elabore el estado de resultados de MSFT; presentando la información por trimestre, de forma anual y trimestre promedio. Elabore y analice la evolución por trimestre del costo de ventas, gasto operativo, costo de capital, otros gastos y su impacto en las utilidades netas (gráfica) Curso de Microsoft Excel y VBA www.chconsultores.net 9 XLVBA: Caso práctico Quarter 31-Dec-02 31-Mar-03 30-Sep-02 Total Revenue Cost of Revenue Gross Profit Operating Expenses Research Development Selling General and Administrative Non Recurring Others Total Operating Expenses Operating Income or Loss Income from Continuing Operations Total Other Income/Expenses Net Earnings Before Interest And Taxes Interest Expense Income Before Tax Income Tax Expense Minority Interest Net Income From Continuing Ops Non-recurring Events Discontinued Operations Extraordinary Items Effect Of Accounting Changes Other Items 30-Jun-03 $ 7,746,000.00 $ 8,541,000.00 $ 7,835,000.00 $ 8,065,000.00 $ 1,199,000.00 $ 2,034,000.00 $ 1,215,000.00 $ 1,238,000.00 $ 6,547,000.00 $ 6,507,000.00 $ 6,620,000.00 $ 6,827,000.00 $ 1,094,000.00 $ 1,403,000.00 $ $ $ 2,497,000.00 $ 1,118,000.00 $ 2,130,000.00 $ $ $ 3,248,000.00 $ 1,111,000.00 $ 1,794,000.00 $ $ $ 2,905,000.00 $ 1,336,000.00 $ 3,298,000.00 $ $ $ 4,634,000.00 $ 4,050,000.00 $ 3,259,000.00 $ 3,715,000.00 $ 2,193,000.00 $ 19,000.00 $ 4,069,000.00 $ $ 4,069,000.00 $ 1,343,000.00 $ $ 2,726,000.00 $ 363,000.00 $ 3,622,000.00 $ $ 3,622,000.00 $ 1,070,000.00 $ $ 2,552,000.00 $ 453,000.00 $ 4,168,000.00 $ $ 4,168,000.00 $ 1,374,000.00 $ $ 2,794,000.00 $ 674,000.00 $ 2,867,000.00 $ $ 2,867,000.00 $ 946,000.00 $ $ 1,921,000.00 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ - - - - $ 2,726,000.00 $ 2,552,000.00 $ 2,794,000.00 $ 1,921,000.00 Net Income $ $ $ $ Preferred Stock And Other Adjustments Net Income Applicable To Common Shares $ 2,726,000.00 $ 2,552,000.00 $ 2,794,000.00 $ 1,921,000.00 Curso de Microsoft Excel y VBA www.chconsultores.net 10 XLVBA: Caso práctico % from TR 30-Sep-02 31-Dec-02 31-Mar-03 30-Jun-03 $ 16,287,000.00 $ 8,143,500.00 100.00% 100.00% 100.00% 100.00% 1 Year Total Revenue Cost of Revenue Gross Profit Operating Expenses Research Development Selling General and Administrative Non Recurring Others Total Operating Expenses Operating Income or Loss Income from Continuing Operations Total Other Income/Expenses Net Earnings Before Interest And Taxes Interest Expense Income Before Tax Income Tax Expense Minority Interest Net Income From Continuing Ops Non-recurring Events Discontinued Operations Extraordinary Items Effect Of Accounting Changes Other Items Net Income Preferred Stock And Other Adjustments Net Income Applicable To Common Shares Curso de Microsoft Excel y VBA www.chconsultores.net Q Average $ 3,233,000.00 $ 1,616,500.00 15.48% 23.81% 15.51% 15.35% $ 13,054,000.00 $ 6,527,000.00 84.52% 76.19% 84.49% 84.65% $ 2,212,000.00 $ 1,106,000.00 $ 3,533,000.00 $ 1,766,500.00 $ $ $ $ $ 5,745,000.00 $ 2,872,500.00 14.12% 18.11% 0.00% 0.00% 32.24% 0.00% 13.09% 24.94% 0.00% 0.00% 38.03% 0.00% 14.18% 22.90% 0.00% 0.00% 37.08% 0.00% 16.57% 40.89% 0.00% 0.00% 57.46% 0.00% $ 7,309,000.00 $ 3,654,500.00 52.29% 38.16% 47.42% 27.19% $ 382,000.00 $ 191,000.00 $ 7,691,000.00 $ 3,845,500.00 $ $ $ 7,691,000.00 $ 3,845,500.00 $ 2,413,000.00 $ 1,206,500.00 0.25% 52.53% 0.00% 52.53% 17.34% 0.00% 35.19% 4.25% 42.41% 0.00% 42.41% 12.53% 0.00% 29.88% 5.78% 53.20% 0.00% 53.20% 17.54% 0.00% 35.66% 8.36% 35.55% 0.00% 35.55% 11.73% 0.00% 23.82% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 35.19% 29.88% 35.66% 23.82% 0.00% 0.00% 0.00% 0.00% 35.19% 29.88% 35.66% 23.82% $ 5,278,000.00 $ 2,639,000.00 $ $ $ $ - $ $ $ $ - $ 5,278,000.00 $ 2,639,000.00 $ - $ - $ 5,278,000.00 $ 2,639,000.00 11 XLVBA: Caso práctico Cost of Revenue Operating Expenses Interests and Taxes Other Items Net Income Total Revenue Curso de Microsoft Excel y VBA www.chconsultores.net % from TR 31-Dec-02 31-Mar-03 23.81% 15.51% 38.03% 37.08% 8.28% 11.75% 0.00% 0.00% 29.88% 35.66% 100.00% 100.00% 30-Sep-02 15.48% 32.24% 17.09% 0.00% 35.19% 100.00% 12 30-Jun-03 15.35% 57.46% 3.37% 0.00% 23.82% 100.00% XLVBA: Caso práctico Percentage from Total Revenues 100% 35.19% 29.88% 35.66% 23.82% 90% 80% 0.00% 3.37% 0.00% 70% 0.00% 0.00% 8.28% % from TR 60% 11.75% 50% 17.09% 40% 30% 38.03% 20% 32.24% 37.08% 57.46% 10% 15.48% 23.81% 15.51% 15.35% 30-Sep-02 31-Dec-02 31-Mar-03 30-Jun-03 0% Quarter Cost of Revenue Curso de Microsoft Excel y VBA www.chconsultores.net Operating Expenses Interests and Taxes 13 Other Items Net Income Segunda Parte Excel avanzado (8hrs.) “El éxito es pasar de fracaso en fracaso sin perder la motivación” –Winston ChurchillCurso de Microsoft Excel y VBA www.chconsultores.net 14 XLVBA: Segunda parte Agenda: 1. 2. 3. 4. 5. Funciones avanzadas: – – – – – Funciones de cadenas de texto. Funciones financieras. Funciones de búsqueda. Funciones matriciales. Funciones mixtas. – – – – Herramientas de análisis. Formato condicional. Buscar objetivo. Solver. – – – – – Botones de comando. Botones de selección. Cajas de texto. Cajas de listado. Barras de incremento. Tablas dinámicas y gráficos dinámicos. Herramientas avanzadas. Interfaz gráfico. Caso práctico. Curso de Microsoft Excel y VBA www.chconsultores.net 15 Tercera Parte VBA básico (8hrs.) Curso de Microsoft Excel y VBA www.chconsultores.net 16 XLVBA: Tercera parte Agenda: 1. 2. 3. 4. 5. 6. 7. 8. 9. Introducción al interfaz de Visual Basic for Applications. Grabadora de Macros. Introducción a la programación orientada a objetos y eventos. Objetos, métodos y propiedades básicos. Identificadores, constantes y variables. Tipos de datos y operadores. Estructuras de control básicas. Controles estándar básicos. Caso práctico. Curso de Microsoft Excel y VBA www.chconsultores.net 17 XLVBA: Grabadora de macros >Ver >Barra de herramientas >Visual Basic Fijar el nivel de seguridad en Medio Curso de Microsoft Excel y VBA www.chconsultores.net 18 XLVBA: Introducción al interfaz de VBA Modo de diseño Control de ejecución Ventana de Proyectos Menú Ventana de Propiedades Barra de herramientas Visor de objetos Ventana de Proyectos Ventana de Propiedades Curso de Microsoft Excel y VBA www.chconsultores.net Área de Trabajo 19 XLVBA: Introducción a la programación -¿Qué es el flujo? -Programación orientada a objetos y eventos Curso de Microsoft Excel y VBA www.chconsultores.net 20 XLVBA: Objetos, métodos y propiedades Objects workbooks, sheets, range, cells, etc. Properties name, value, category, borders, etc. Methods add, copy, cut, paste, insert, open, save, new, close, etc. Sintaxis object.properties [arguments] object.methods [arguments] Curso de Microsoft Excel y VBA www.chconsultores.net 21 XLVBA: Objetos Workbooks workbooks(index).properties or methods Sheets sheets(index).properties or methods Range range(range as string).properties or methods range(cells1,cells2).properties or methods Cells cells(row_index,column_index).properties or methods Curso de Microsoft Excel y VBA www.chconsultores.net 22 XLVBA: Propiedades y métodos Propiedades -Son atributos que tienen los objetos. -Todas las propiedades tienen un valor que determina el estado del objeto. -Se determinan sus valores en tiempo de diseño para el inicio del programa. -Se pueden modificar con código en tiempo de ejecución. Curso de Microsoft Excel y VBA www.chconsultores.net 23 XLVBA: Propiedades y métodos Cells cells(row_index,column_index). -properties: value = number value = string value = formula value = formula as string -methods: select Range range (string as range). range (cells(row_idx, col_idx) , cells(row_idx, col_idx)). -methods: select Curso de Microsoft Excel y VBA www.chconsultores.net 24 XLVBA: Propiedades y métodos Sheets sheets(index). name = string Workbooks workbooks(index). -methods: open(filename as string) close activeworkbook.saveas Curso de Microsoft Excel y VBA www.chconsultores.net 25 XLVBA: Métodos Manejo de archivos New, Open, Save, Close Inserción de hojas Sheets.Add Manejo del clipboard Cut, Copy, Paste Curso de Microsoft Excel y VBA www.chconsultores.net 26 XLVBA: Procedimientos y funciones “¡Divide y vencerás!” Unidades de código. Procedimientos: Sintaxis Sub nombre (parámetros) … End Sub Funciones: -Devuelven respuesta Sintaxis Function nombre (parámetros) … End function Curso de Microsoft Excel y VBA www.chconsultores.net 27 XLVBA: Identificadores Identificadores: Son los nombres con los que se reconoce a cualquier elemento del programa (comúnmente a variables y constantes). Tienen las siguientes características: •Comienzan con letra. •No tienen espacios, puntos o algunos caracteres especiales. •No pueden ser palabras clave reservadas de Visual Basic. •Mnemotécnicos, se recomienda que no superen los 25 caracteres, aunque su máximo es de 255. Curso de Microsoft Excel y VBA www.chconsultores.net 28 XLVBA: Constantes Constantes: Representan un valor que tiende a repetirse varias veces en el código. Se recomienda usar un identificador en mayúsculas. Ejemplo: Const NUM_DIAS=250 Const MENSAJE_ERROR = _ “Programa abortado. Error fatal” Curso de Microsoft Excel y VBA www.chconsultores.net 29 XLVBA: Constantes Declaración: Parámetro Descripción Public Opcional, disponible en todos los módulos Private Opcional, sólo disponible en la macro. Nombre Nombre o identificador Tipo Tipo de dato Expresión Contiene el valor asignado Sintaxis: [Public/Private] Const nombre [as tipo] = expresión Ejemplo: Public Const MENSAJE_ERROR as string = “¡Error Crítico!” Curso de Microsoft Excel y VBA www.chconsultores.net 30 XLVBA: Variables Variables: Almacenan temporalmente valores durante la ejecución del programa. Sintaxis: Dim nombre [as tipo] = expresión Ejemplo: Dim Ventas as currency = 10000 Dim Fecha as date = 31/10/79 Curso de Microsoft Excel y VBA www.chconsultores.net 31 XLVBA: Tipos de datos Tipo Bytes Valor Integer 2 -32,768 a +32,767 Long 4 -2,147,483,648 a +2,147,483,648 Single 4 1E-45 a 3E38 Double 8 5E-324 a 1.8E308 Currency 8 +/- 9E14 String 1 / char 65,400 Byte 1 0 a 255 Boolean 2 True o False Date 8 1/1/100 a 31/12/9999 Curso de Microsoft Excel y VBA www.chconsultores.net 32 XLVBA: Operadores -Inteligencia artificial y toma de decisiones. -Cuatro grupos: •Aritméticos •Comparación •Lógicos •Concatenación Curso de Microsoft Excel y VBA www.chconsultores.net 33 XLVBA: Operadores aritméticos Operación Operador Suma + Resta - Multiplicación * División / División entera \ Potencia ^ Igual = Agrupación ( ) Curso de Microsoft Excel y VBA www.chconsultores.net Precedencia de los operadores 1.- Potencia 2.- Negativo 3.-Multiplicación y división 4.-División entera 5.-Suma y resta Se pueden usar los paréntesis para alterar el orden de la precedencia de los operadores 34 XLVBA: Operadores de comparación Operador Descripción = Igualdad <> Desigualdad < Menor que > Mayor que <= Menor o igual que Comúnmente se usan con estructuras de control. Ejemplo: If number<=maximum then arguments… End if While number<maximum arguments… >= Mayor o igual que Curso de Microsoft Excel y VBA www.chconsultores.net Wend 35 XLVBA: Operadores lógicos Operador Not Descripción Negación Not – Negación Sintaxis And Conjunción lógica Or Disyunción lógica Xor resultado = not expresión Exclusión lógica Eqv Equivalencia lógica Imp Implicación lógica Curso de Microsoft Excel y VBA www.chconsultores.net 36 expresión resultado verdadero falso falso verdadero null null XLVBA: Operadores lógicos And – Conjunción lógica Sintaxis resultado = expresión1 and expresión2 expresión1 expresión2 resultado verdadero verdadero verdadero verdadero falso falso verdadero null null falso verdadero falso falso falso falso falso null falso null verdadero null null falso falso null null null Curso de Microsoft Excel y VBA www.chconsultores.net 37 XLVBA: Operadores lógicos Or – Disyunción lógica Sintaxis resultado = expresión1 or expresión2 expresión1 expresión2 resultado verdadero verdadero verdadero verdadero falso verdadero verdadero null verdadero falso verdadero verdadero falso falso falso falso null null null verdadero verdadero null falso null null null null Curso de Microsoft Excel y VBA www.chconsultores.net 38 XLVBA: Operadores de concatenación Concatenar dos cadenas significa crear una tercera cuyo contenido es igual a la suma de las dos primeras. Operador Descripción Ejemplos: + Datos tipo string & Cualquier valor Curso de Microsoft Excel y VBA www.chconsultores.net Nombre = _ “Genaro ” + “Chiu” Ventas = 1000 & “Autos” 39 XLVBA: Estructuras de control Formas avanzadas de funciones que en lugar de devolver valores conducen el flujo de ejecución de un programa Curso de Microsoft Excel y VBA www.chconsultores.net 40 XLVBA: If-Elseif-Else Ejecuta sentence si cumple con la condición o es el caso excluido. Sintaxis: If condition then sentence Elseif condition then sentence Else sentence End if Curso de Microsoft Excel y VBA www.chconsultores.net 41 XLVBA: For-Next Sintaxis For variable=value1 to value2 step value3 sentence Next variable true X=10 X>=10 ? false sntc Ejemplo For X = 1 to 10 step 1 cells(X,1).value=1 Next X Curso de Microsoft Excel y VBA www.chconsultores.net 1 X 42 X+1 XLVBA: While-Wend Sintaxis While condition sentence Wend Curso de Microsoft Excel y VBA www.chconsultores.net 43 XLVBA: Controles estándar El interfaz para el usuario como lenguaje universal Label Etiqueta Textbox Caja de texto Pointer Apuntador Command Button Botón de comando Curso de Microsoft Excel y VBA www.chconsultores.net 44 XLVBA: Form Nueva Forma (Menu-Insert-UserForm) Nueva Forma (Standard Bar) Name: nombre_de_formafrm Nueva Forma (New Form) Aparece en la ventana de proyectos y puede ser un archivo por si mismo Curso de Microsoft Excel y VBA www.chconsultores.net 45 XLVBA: Form Name: Caption: BackColor: Curso de Microsoft Excel y VBA www.chconsultores.net tunombrefrm “tunombre, Curso de Microsoft Excel” Yellow(&H00C0FFFF&) 46 XLVBA: Label Rótulos de texto para transmitir información al usuario Name: nombrelbl Nueva Etiqueta (New Label) Etiqueta (Label) Curso de Microsoft Excel y VBA www.chconsultores.net 47 XLVBA: Label Name: Caption: TextAlign: Font: Curso de Microsoft Excel y VBA www.chconsultores.net Bienvenidolbl “¡Bienvenido!” 2-frmTextAlignCenter Tahoma 18 48 XLVBA: Textbox Cajas de almacenaje de texto para recibir información al usuario Name: nombretxt Nueva Caja de texto (New textbox) Caja de texto (Textbox) Curso de Microsoft Excel y VBA www.chconsultores.net 49 XLVBA: Textbox Name: Font: Curso de Microsoft Excel y VBA www.chconsultores.net Mensajetxt Tahoma 18 50 XLVBA: Command Button Botón para recibir una orden de ejecución del usuario Name: nombrecmd Nueva Botón de comando (New Command Button) Botón de comando (Command Button) Curso de Microsoft Excel y VBA www.chconsultores.net 51 XLVBA: Command Button Name: Font: BackColor: Cambiarcmd Comic Sans 14 Pale Green(&H00C0FFC0&) Private Sub CambiarCmd_Click() Bienvenidolbl.Caption = Mensajetxt.Text End Sub Curso de Microsoft Excel y VBA www.chconsultores.net 52 XLVBA: Bibliografía -Microsoft Office Excel 2003 Bible. John Walkenbach. John Wiley & Sons. -Financial Modeling, Simon Benninga Second Edition. The MIT Press. -Advanced modelling in finance using Excel and VBA. Mary Jackson and Mike Staunton. John Wiley & Sons. Curso de Microsoft Excel y VBA www.chconsultores.net 53 XLVBA: Bibliografía -Excel 2003 Power Programming with VBA. John Walkenbach. John Wiley & Sons. -Favorite Excel Tips & Tricks. John Walkenbach. John Wiley & Sons. Curso de Microsoft Excel y VBA www.chconsultores.net 54 Contactos Lic. Genaro Chiu Lam Profesor de Cátedra Departamento de Contabilidad y Finanzas División de Negocios Tecnológico de Monterrey, Campus Ciudad de México Cel. (04455) 59-67-79-23 [email protected] http://www.chconsultores.net Curso de Microsoft Excel y VBA www.chconsultores.net 55 ¡Gracias! Lic. Genaro Chiu Lam [email protected]