Post on 25-Sep-2018
Lic. Genaro Chiu Lamgenaro@chconsultores.net
MicrosoftExcel y VBA
2Curso de Microsoft Excel y VBAwww.chconsultores.net
PrimeraParte
Excel básico(8hrs.)
“Un viaje de mil millas comienza con un primer paso”
3Curso de Microsoft Excel y VBAwww.chconsultores.net
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.
4Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Introducción al interfaz
Hoja activa (Hojas)
Desplazador del libro
Barra de estado
Desplazador horizontal
Desplazador vertical
Celda activa (Celdas)
Columna
Fila
Barra de formato
Menú
Barra estándar
Barra de fórmulas
AyudaNombre
5Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Tipos de datos
>> Tools - Format Cells• Número• Moneda• Porcentaje• Contabilidad• Fracción• Científica• Fecha y hora • Texto• Bolean
6Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Manipulación
Teclas (Key)Operación (Operation)
Mover (Move)
Seleccionar (Select)
<shft><arrows>
<shft> <ctrl>
Una celda (Single Cell)
Select & Drag
Cortar y Pegar (Cut & Paste)
Rangos Discontinuos
(Separate Ranges)
Un Rango (Single Range)
Celdas discontinuas
[drag] arrastrar o dragar (drag)
<arrows>
(Separate Cells)
<ctrl x> cortar (cut)
<ctrl v> pegar (paste)
<ctrl>
7Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Manipulación
Teclas (Key)Operación (Operation)
Autofill
Copiar (Copy)
Cross Drag <ctrl c> <ctrl v> [drag from cross]
[drag]
<ctrl>
<shft>
Selección de Hojas (Sheet
Selection)
Toggle <ctrl><pg up> <ctrl><pg down>
Continuous
Separate
Cross Drag
8Curso de Microsoft Excel y VBAwww.chconsultores.net
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 SheetsWeb QueriesDatabase Queries
• ProcesamientoFunctionsValues by VBA
• Reporte• Gráficas
9Curso de Microsoft Excel y VBAwww.chconsultores.net
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)
10Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Caso práctico
30-Sep-02 31-Dec-02 31-Mar-03 30-Jun-03Total Revenue 7,746,000.00$ 8,541,000.00$ 7,835,000.00$ 8,065,000.00$ Cost of Revenue 1,199,000.00$ 2,034,000.00$ 1,215,000.00$ 1,238,000.00$ Gross Profit 6,547,000.00$ 6,507,000.00$ 6,620,000.00$ 6,827,000.00$
Operating ExpensesResearch Development 1,094,000.00$ 1,118,000.00$ 1,111,000.00$ 1,336,000.00$ Selling General and Administrative 1,403,000.00$ 2,130,000.00$ 1,794,000.00$ 3,298,000.00$ Non Recurring -$ -$ -$ -$ Others -$ -$ -$ -$ Total Operating Expenses 2,497,000.00$ 3,248,000.00$ 2,905,000.00$ 4,634,000.00$
Operating Income or Loss 4,050,000.00$ 3,259,000.00$ 3,715,000.00$ 2,193,000.00$ Income from Continuing OperationsTotal Other Income/Expenses Net 19,000.00$ 363,000.00$ 453,000.00$ 674,000.00$ Earnings Before Interest And Taxes 4,069,000.00$ 3,622,000.00$ 4,168,000.00$ 2,867,000.00$ Interest Expense -$ -$ -$ -$ Income Before Tax 4,069,000.00$ 3,622,000.00$ 4,168,000.00$ 2,867,000.00$ Income Tax Expense 1,343,000.00$ 1,070,000.00$ 1,374,000.00$ 946,000.00$ Minority Interest -$ -$ -$ -$ Net Income From Continuing Ops 2,726,000.00$ 2,552,000.00$ 2,794,000.00$ 1,921,000.00$ Non-recurring EventsDiscontinued Operations -$ -$ -$ -$ Extraordinary Items -$ -$ -$ -$ Effect Of Accounting Changes -$ -$ -$ -$ Other Items -$ -$ -$ -$
Net Income 2,726,000.00$ 2,552,000.00$ 2,794,000.00$ 1,921,000.00$
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$
Quarter
11Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Caso práctico
30-Sep-02 31-Dec-02 31-Mar-03 30-Jun-0316,287,000.00$ 8,143,500.00$ 100.00% 100.00% 100.00% 100.00%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$ 14.12% 13.09% 14.18% 16.57%3,533,000.00$ 1,766,500.00$ 18.11% 24.94% 22.90% 40.89%
-$ -$ 0.00% 0.00% 0.00% 0.00%-$ -$ 0.00% 0.00% 0.00% 0.00%
5,745,000.00$ 2,872,500.00$ 32.24% 38.03% 37.08% 57.46%0.00% 0.00% 0.00% 0.00%
7,309,000.00$ 3,654,500.00$ 52.29% 38.16% 47.42% 27.19%
382,000.00$ 191,000.00$ 0.25% 4.25% 5.78% 8.36%7,691,000.00$ 3,845,500.00$ 52.53% 42.41% 53.20% 35.55%
-$ -$ 0.00% 0.00% 0.00% 0.00%7,691,000.00$ 3,845,500.00$ 52.53% 42.41% 53.20% 35.55%2,413,000.00$ 1,206,500.00$ 17.34% 12.53% 17.54% 11.73%
0.00% 0.00% 0.00% 0.00%5,278,000.00$ 2,639,000.00$ 35.19% 29.88% 35.66% 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%
5,278,000.00$ 2,639,000.00$ 35.19% 29.88% 35.66% 23.82%
-$ -$ 0.00% 0.00% 0.00% 0.00%5,278,000.00$ 2,639,000.00$ 35.19% 29.88% 35.66% 23.82%
% from TR1 Year Q Average
Total RevenueCost of RevenueGross Profit
Operating ExpensesResearch DevelopmentSelling General and AdministrativeNon RecurringOthersTotal Operating Expenses
Operating Income or LossIncome from Continuing OperationsTotal Other Income/Expenses NetEarnings Before Interest And TaxesInterest ExpenseIncome Before TaxIncome Tax ExpenseMinority InterestNet Income From Continuing OpsNon-recurring EventsDiscontinued OperationsExtraordinary ItemsEffect Of Accounting ChangesOther Items
Net IncomePreferred Stock And Other AdjustmentsNet Income Applicable To Common Shares
12Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Caso práctico
30-Sep-02 31-Dec-02 31-Mar-03 30-Jun-03Cost of Revenue 15.48% 23.81% 15.51% 15.35%Operating Expenses 32.24% 38.03% 37.08% 57.46%Interests and Taxes 17.09% 8.28% 11.75% 3.37%Other Items 0.00% 0.00% 0.00% 0.00%Net Income 35.19% 29.88% 35.66% 23.82%Total Revenue 100.00% 100.00% 100.00% 100.00%
% from TR
13Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Caso práctico
Percentage from Total Revenues
15.48% 23.81% 15.51% 15.35%
32.24%
38.03%
37.08% 57.46%
17.09%
8.28%
11.75%
3.37%
0.00%
0.00%
0.00%
0.00%
35.19% 29.88% 35.66% 23.82%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
30-Sep-02 31-Dec-02 31-Mar-03 30-Jun-03
Quarter
% fr
om T
R
Cost of Revenue Operating Expenses Interests and Taxes Other Items Net Income
14Curso de Microsoft Excel y VBAwww.chconsultores.net
SegundaParte
Excel avanzado(8hrs.)
“El éxito es pasar de fracaso en fracaso sin perder la motivación” –Winston Churchill-
15Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Segunda parte
Agenda:1. Funciones avanzadas:
– Funciones de cadenas de texto.– Funciones financieras.– Funciones de búsqueda.– Funciones matriciales.– Funciones mixtas.
2. Tablas dinámicas y gráficos dinámicos.
3. Herramientas avanzadas.– Herramientas de análisis.– Formato condicional.– Buscar objetivo.– Solver.
4. Interfaz gráfico.– Botones de comando.– Botones de selección.– Cajas de texto.– Cajas de listado.– Barras de incremento.
5. Caso práctico.
16Curso de Microsoft Excel y VBAwww.chconsultores.net
TerceraParte
VBA básico(8hrs.)
17Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Tercera parte
Agenda:1. Introducción al interfaz de
Visual Basic for Applications.2. Grabadora de Macros.3. Introducción a la
programación orientada a objetos y eventos.
4. Objetos, métodos y propiedades básicos.
5. Identificadores, constantes y variables.
6. Tipos de datos y operadores.7. Estructuras de control básicas.8. Controles estándar básicos.9. Caso práctico.
18Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Grabadora de macros
>Ver>Barra de herramientas
>Visual Basic
Fijar el nivel de seguridad en Medio
19Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Introducción al interfaz de VBA
Ventana de Propiedades
Ventana de Proyectos
Área de Trabajo
Control de ejecuciónModo de diseño
Ventana de Propiedades
Ventana de Proyectos
Visor de objetos
Barra de herramientas
Menú
20Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Introducción a la programación
-¿Qué es el flujo?
-Programación orientada a objetos y eventos
21Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Objetos, métodos y propiedades
Objectsworkbooks, sheets, range, cells, etc.Properties
name, value, category, borders, etc.Methods
add, copy, cut, paste, insert, open, save, new, close, etc.
Sintaxisobject.properties [arguments]object.methods [arguments]
22Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Objetos
Workbooksworkbooks(index).properties or methods
Sheetssheets(index).properties or methods
Rangerange(range as string).properties or methodsrange(cells1,cells2).properties or methods
Cellscells(row_index,column_index).propertiesor methods
23Curso de Microsoft Excel y VBAwww.chconsultores.net
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.
24Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Propiedades y métodos
Cells cells(row_index,column_index).-properties:
value = numbervalue = stringvalue = formulavalue = formula as string
-methods:select
Rangerange (string as range).range (cells(row_idx, col_idx) , cells(row_idx, col_idx)).-methods:
select
25Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Propiedades y métodos
Sheets
sheets(index).name = string
Workbooks
workbooks(index).-methods:
open(filename as string)
close
activeworkbook.saveas
26Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Métodos
Manejo de archivos
New, Open, Save,
Close
Inserción de hojas
Sheets.Add
Manejo del clipboard
Cut, Copy, Paste
27Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Procedimientos y funciones
“¡Divide y vencerás!”
Unidades de código.
Procedimientos:Sintaxis
Sub nombre (parámetros)…
End Sub
Funciones:-Devuelven respuesta
SintaxisFunction nombre (parámetros)
…End function
28Curso de Microsoft Excel y VBAwww.chconsultores.net
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.
29Curso de Microsoft Excel y VBAwww.chconsultores.net
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”
30Curso de Microsoft Excel y VBAwww.chconsultores.net
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!”
31Curso de Microsoft Excel y VBAwww.chconsultores.net
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
32Curso de Microsoft Excel y VBAwww.chconsultores.net
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
33Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores
-Inteligencia artificial y toma
de decisiones.
-Cuatro grupos:
•Aritméticos
•Comparación
•Lógicos
•Concatenación
34Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores aritméticos
Operación Operador
Potencia ^
Igual =
Suma +
Resta -
Multiplicación *
División /
División entera \
Agrupación ( )
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
35Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores de comparación
Operador Descripción
= Igualdad
<> Desigualdad
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
Comúnmente se usan con
estructuras de control.
Ejemplo:
If number<=maximum then
arguments…
End if
While number<maximum
arguments…
Wend
36Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores lógicos
Operador Descripción
Not Negación
And Conjunción lógica
Or Disyunción lógica
Xor Exclusión lógica
Eqv Equivalencia lógica
Imp Implicación lógica
Not – Negación
Sintaxis
resultado = not expresión
expresión resultado
verdadero falso
falso verdadero
null null
37Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores lógicos
And – Conjunción lógicaSintaxis
resultado = expresión1 and expresión2
expresión1 expresión2 resultadoverdadero verdadero verdadero
verdadero falso falso
verdadero null null
falso verdadero falso
null falso falso
falso falso falso
falso null falso
null verdadero null
null null null
38Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores lógicos
Or – Disyunción lógicaSintaxis
resultado = expresión1 or expresión2
expresión1 expresión2 resultadoverdadero verdadero verdadero
verdadero falso verdadero
verdadero null verdadero
falso verdadero verdadero
null falso null
falso falso falso
falso null null
null verdadero verdadero
null null null
39Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Operadores de concatenación
ConcatenarConcatenar dos cadenas significa crear una tercera dos cadenas significa crear una tercera cuyo contenido es igual a la suma de las dos cuyo contenido es igual a la suma de las dos primeras.primeras.
Operador Descripción
+ Datos tipo string
& Cualquier valor
Ejemplos:
Nombre = _
“Genaro ” + “Chiu”
Ventas = 1000 & “Autos”
40Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Estructuras de control
Formas avanzadas de funciones que en lugar de devolver valores conducen el flujo de ejecución de un programa
41Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: If-Elseif-Else
Ejecuta sentence si cumplecon la condición o es el caso excluido.Sintaxis:
If condition thensentence
Elseif condition thensentence
Elsesentence
End if
42Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: For-Next
true false
Sintaxis
For variable=value1 to value2 step value3sentence
Next variable
Ejemplo
For X = 1 to 10 step 1cells(X,1).value=1
Next X
X>=10 ?
X+1
X=10
1
sntc
X
43Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: While-Wend
Sintaxis
While conditionsentence
Wend
44Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Controles estándar
El interfaz para el usuario como lenguaje universal
LabelEtiqueta
TextboxCaja de texto
PointerApuntador
Command ButtonBotón de comando
45Curso de Microsoft Excel y VBAwww.chconsultores.net
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
46Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Form
Name: tunombrefrmCaption: “tunombre, Curso de Microsoft Excel”BackColor: Yellow(&H00C0FFFF&)
47Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Label
Rótulos de texto para transmitir información al usuario
Name: nombrelbl
Nueva Etiqueta (New Label)
Etiqueta (Label)
48Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Label
Name: BienvenidolblCaption: “¡Bienvenido!”TextAlign: 2-frmTextAlignCenterFont: Tahoma 18
49Curso de Microsoft Excel y VBAwww.chconsultores.net
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)
50Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Textbox
Name: MensajetxtFont: Tahoma 18
51Curso de Microsoft Excel y VBAwww.chconsultores.net
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)
52Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Command Button
Name: CambiarcmdFont: Comic Sans 14BackColor: Pale Green(&H00C0FFC0&)
Private Sub CambiarCmd_Click()Bienvenidolbl.Caption = Mensajetxt.Text
End Sub
53Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Bibliografía
-Microsoft Office Excel 2003 Bible. John Walkenbach. JohnWiley & Sons.
-Financial Modeling, SimonBenninga Second Edition. TheMIT Press.
-Advanced modelling in finance using Excel and VBA. Mary Jackson and MikeStaunton. John Wiley & Sons.
54Curso de Microsoft Excel y VBAwww.chconsultores.net
XLVBA: Bibliografía
-Excel 2003 PowerProgramming with VBA. JohnWalkenbach. John Wiley & Sons.
-Favorite Excel Tips & Tricks. John Walkenbach. John Wiley& Sons.
55Curso de Microsoft Excel y VBAwww.chconsultores.net
Contactos
Lic. Genaro Chiu Lam
Profesor de CátedraDepartamento de Contabilidad y FinanzasDivisión de NegociosTecnológico de Monterrey, Campus Ciudad de México
Cel. (04455) 59-67-79-23genaro@chconsultores.nethttp://www.chconsultores.net
Lic. Genaro Chiu Lamgenaro@chconsultores.net
¡Gracias!