Академический Документы
Профессиональный Документы
Культура Документы
© Los derechos de edición, distribución y comercialización de esta obra son de exclusividad del Instituto Superior Tecnológico IDAT
Presentación
Microsoft Excel es un software para el manejo de hojas electrónicas agrupadas
en libros para cálculos de casi cualquier índole. Entre muchas otras aplicaciones,
es utilizado en el tratamiento estadístico de datos, así como para la presentación
gráfica de los mismos.
Todos estos pasos se guardan con un nombre de macro, los cuales se podrá
ejecutar más adelante con un solo clic.
Seguridad de macros
Microsoft Excel 2010 está configurado por defecto el bloqueo de las macros
como medida de precaución de la presencia de alguna macrovirus en el sistema,
esta configuración se puede cambiar para especificar las macros que se ejecutarán.
4. Realice cuidadosamente todas las operaciones que desee grabar, por ejemplo:
A través de un atajo
- Presione simultáneamente las teclas Ctrl + F.
2. Seleccione Opciones.
9. En forma similar haga clic derecho sobre elemento Nuevo grupo para
cambiarle de nombre.
Agregar un botón
Una vez creado la ficha Omega SAC y el grupo Mis formatos, procederemos
a insertar un botón para la macro Formatos que creamos anteriormente. Realice
los siguientes pasos:
1. Haga clic derecho sobre el grupo Mis formatos y del menú contextual elija
Personalizar la cinta de opciones.
Referencia de celdas
Referencias relativas y absolutas
Referencias absolutas
Ocurre cuando al ejecutar una macro que guarda el desplazamiento de celdas
lo hace tomando como referencia la posición de la celda donde se empezó la
grabación. Veamos el siguiente ejemplo del tratamiento del movimiento del
puntero de celdas al ejecutar una macro, por ejemplo deseamos desplazar el
puntero de celda al final de la siguiente fila y desplazarnos una fila hacia abajo.
6. Detener la macro.
Referencias relativas
Para ver el direccionamiento relativo trabajaremos con los mismos datos del
ejemplo anterior, pero esta vez antes de iniciar la grabación de la macro en el
paso 3, seleccione primero el botón de usar referencias relativas.
5. Luego estando en dicha celda presione simultáneamente las teclas Ctrl +F, el
resultado será:
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Underline = xlUnderlineStyleDouble
8. Para comprender mejor realice los siguientes cambios dentro del editor de
Visual Basic.
Sintaxis:
ActiveCell.Offset(F,C).Select
Donde:
Ejemplo:
ActiveCell.Offset(0,2).Select
ActiveCell.Offset (3,0).Select
ActiveCell.Offset (1,5).Select
ActiveCell.Offset (-2,-4).Select
Ejercicio
Veamos ahora como podemos desplazar el puntero de celda, mediante código
de VBA.
Solución:
1. Ir a la ficha Programador.
ActiveCell.Value
Nos permite asignar un valor a la celda activa.
Sintaxis:
ActiveCell.Value = Dato
Donde:
Ejemplo:
ActiveCell.Value = 10
ActiveCell.Value = “IDAT”
Ejercicio
Crear una macro que ingrese el nombre de producto Leche, la cantidad a
comprar 4 y el precio de 2.5.
Solución:
1. Ir a la ficha Programador.
ActiveCell.Formula
Nos permite asignar un valor a la celda activa como resultado de una fórmula.
Sintaxis:
ActiveCell.Formula = Expresión
Donde:
Ejemplo:
ActiveCell.Formula = “=C4*D4”
ActiveCell.Formula = “=C[-2]*C[-1]”
Ejercicio:
Solución:
Donde:
C[n] Indica la referencia a una celda que está a “n” columnas de la celda
activa, por ejemplo:
R[n] Indica la referencia a una celda que está a “n” filas de la celda activa,
por ejemplo: Si la referencia es en
la misma fila (Row) o
columna (Column) se
R[3] Indica la celda que se encuentra tres filas debajo de la celda activa. podrá omitir 0 en C y
R respectivamente, es
R[1]C[2] Indica la celda que se encuentra una fila abajo y dos columnas decir R[0] es lo mismo
que poner solamente R
a la derecha de la celda activa.
InputBox
Nos permite ingresar datos.
Sintaxis:
InputBox([prompt],[Title],[Default],[xpos],[ypos]
Donde:
Ejemplo:
Prompt
Solución:
1. Ir a la ficha Programador.
8. Se mostrará la siguiente
ventana de diálogo.
Práctica dirigida
Resolver:
1. Crear una macro Ventas, que permita ingresar las ventas de las sucursales
tal como se muestra en la tabla de la siguiente figura.
Solución:
2. Crear una macro Notas, que permita ingresar las notas de los siguientes
alumnos y calcule su promedio.
b. Se calculará su promedio.
Solución:
Solución:
Ver código
- Proyectos:
- Carpetas:
b. Formularios.
c. Módulos.
Los módulos sirven para escribir macros a nivel genérico, sin estar
relacionadas a la hoja o libro en particular. Si no visualizas ninguno
puedes agregarlos desde el menú Insertar > Módulo.
- Si es una macro que solo debe afectar una hoja en particular escríbela en los
objetos de Hoja, en el nombre de Hoja correspondiente.
Ventana de Propiedades
Se ubica en la parte inferior izquierda del
Editor de Visual Basic, puedes activarla con
la tecla de función F4, tal como se aprecia en
la siguiente figura:
Algunos objetos tienen muchas propiedades (por ej. los Userforms), los cuales
se pueden ordenar los mismos de forma alfabética o por categoría. El objeto
Módulo1 solo tiene la propiedad (Name) Módulo1.
Ventana de Código
Esta es el lugar donde escribiremos el código de las macros. Como no hemos
escrito ninguna macro todavía veremos la hoja en blanco. Recuerda bien estas
dos ventanas, ya que las usaremos a continuación para escribir nuestra primera
macro.
Ventana Inmediato
La ventana inmediato sirve para escribir, ejecutar y probar un código macro
rápidamente, sin tener que armar toda la macro.
Conceptos generales
A la hora de trabajar con macros en Excel, se deben tenerse claros ciertos
conceptos de lo que se llama programación orientada a objetos.
Objeto
Cuando en el mundo real nos referimos a objeto significa que hablamos de algo
abstracto que puede ser cualquier cosa, por ejemplo objetos PC, aula, etc. En la
programación orientada a objetos la generalización de un objeto se llama clase, así la
clase PC seria como la representante de todos los computadores del mundo, mientras
que un objeto PC sería una PC en concreto; todo objeto está definido por una clase.
Propiedades
Cualquier objeto tiene características o propiedades como por ejemplo el
color, la forma, peso, medidas, etc. Estas propiedades se definen en la clase y
luego se particularizan en cada objeto. Así, en la clase PC se podrían definir las
propiedades Procesador, RAM y Disco duro, luego al definir un objeto concreto
como PC ya se particularizarían estas propiedades a:
- RAM = 2 GB
Métodos
Los objetos tienen comportamientos o realizan acciones, por ejemplo, una
acción evidente de un objeto PC es el de guardar archivos.
Eventos
Un evento es una acción que es reconocida por el objeto. Un evento ocurre como
resultado de la interacción del usuario con el objeto (ejemplo hacer clic en un botón).
Módulos
Un módulo es un contenedor
para los procedimientos como
se muestra en la siguiente
figura:
Procedimientos
Un procedimiento es una unidad de
código cerrado, ejemplo:
Variables
Una variable se utiliza para almacenar un valor y puede ser de cualquier tipo.
En Excel VBA, tenemos los siguientes tipos de variables:
Sentencia DIM
Mediante la instrucción DIM al principio del código, permite declarar a las
variables
Ejemplo:
Option Explicit
Mediante la instrucción Option Explicit al principio del código, obliga a declarar
todas las variables.
Ejemplos:
Sub Entero()
Cant = 6
ActiveCell.Value = Cant
End Sub
Sub Texto()
ActiveCell.Value = Producto
End Sub
Sub Moneda()
Dim PU As Currency
PU = 3.2
ActiveCell.Value = PU
Selection.NumberFormat = “$ #,###.00”
End Sub
Sub Logico()
Tipo = True
ActiveCell.Value = Tipo
End Sub
Sub Fecha()
Fecvta = Now()
ActiveCell.Value = Fecvta
Selection.NumberFormat = “dd/mm/yyyy”
End Sub
General
PUBLIC P
DIM N STATIC X
Se reinicia Conserva
cada vez que su Valor
se ejecuta el
procedimineto
Procedimiento A Procedimiento B
Variables locales
Las variables locales son aquellas que están definidas dentro de un
procedimiento y sólo son accesibles en el procedimiento donde se definieron, así
una variable local es reinicializada cada vez que se entra en el procedimiento. Se
declaran con la instrucción DIM.
Variables globales
Las variables de tipo global son aquellas que son accesibles desde cualquier
parte del programa. Para hacer que una variable sea global, hay que declararla
en la parte general de un módulo usando la instrucción PUBLIC.
Variables estáticas
Si se usa la declaración STATIC, entonces la variable conserva su valor mientras
se está ejecutando el resto del código
Ejercicios
A. Reconocimiento y manejo de procedimientos y eventos.
1. Crear el módulo1.
5. En forma similar se hará para los demás botones, según la siguiente tabla.
1 Producto Texto
2 Cantidad Entero
3 Precio Moneda
4 Fec_vta Fecha
5 Estado Lógico
Caption
cmdLocal
frmVariables
cmdEstatica Caption
cmdPublica
3. Para codificar cada botón de comando haga doble clic sobre él y luego
escriba las instrucciones que se muestran en la siguiente figura.
Funciones básicas
If Then Else
Esta instrucción permite ejecutar ciertas líneas de código cuando la expresión
se cumpla.
Sintaxis:
Donde:
Ejemplo:
Solución:
Do Loop Until
Esta instrucción permite ejecutar ciertas líneas de código hasta que la
expresión se cumpla.
Sintaxis:
Do
Instrucciones
Donde:
Ejemplo:
Solución:
5. En forma similar ingrese datos de otros alumnos, para terminar haga clic en
el botón No, ante la pregunta si desea continuar.
60
Excel III 2010
Fort To Next
Esta instrucción permite ejecutar ciertas líneas de código un número determinado
de veces.
Sintaxis:
Instrucciones
NEXT Var
Donde:
Ejemplo:
Además al final la etiqueta CANT debe cambiarse por ITEM, ya que cada
producto se le asignará un código de barras.
Solución:
Evaluación 01
Objetivo
Que el participante grabe macros automáticas, utilice funciones y haga uso
del editor de Visual Basic para aplicaciones
Resolver
1. Abrir el archivo EVALUACION_01.XLSM que le proporcionará el profesor del
curso.
- Pregunta 01
- Pregunta 02
- Pregunta 03
- Pregunta 04
Diseño de formularios
Un Formulario (Userform) en Microsoft Excel 2010, se utiliza para crear
una ventana de diálogo donde el usuario puede incluir objetos para introducir
información o realizar otras operaciones, por ejemplo en la siguiente figura se
muestra un formulario que tiene una serie de objetos para ingresar una cantidad
de dinero en soles y luego según la opción que se elija se obtenga el tipo de
cambio en Euros, Dólares o Yen, asimismo se puede repetir la operación para una
nueva cantidad de dinero.
Formulario Objetos
Los Userforms se utilizan mucho para crear aplicaciones Excel que luzcan de
forma profesional y permitan al usuario introducir datos o elegir opciones de
una forma guiada y más intuitiva. En este capítulo aprenderemos como construir
nuestros propios formularios.
Insertar un formulario
Para insertar un formulario en Microsoft Excel 2010, realice los siguientes
pasos:
Cuadro de herramientas
El cuadro de herramientas contiene una serie de controles, los cuales servirán
para el diseño de nuestro formulario.
Seleccionar objetos
Sirve para seleccionar controles que hayamos insertado en el formulario.
Etiqueta (Label)
Sirve para poner un título o un texto.
Ejemplo: creamos una lista con los meses de Enero a Diciembre para que el
usuario elija uno de ellos.
Ejemplo: creamos una lista con Regiones del país y el usuario deberá elegir
una de ellas.
Marco (Frame)
Sirve para agrupar elementos de un formulario (los elementos se deben ubicar
dentro del Marco).
Ejemplo: un formulario con tres fichas: Costa, Sierra y Selva, en cada ficha
podemos ubicar sus propios controles.
Ejemplo: tenemos una lista con muchos productos. Con el ScrollBar podemos
subir y bajar por la lista de los mismos utilizando las flechas de desplazamiento.
Imagen (Image)
Permite introducir imágenes en el Userform.
Referencia (RefEdit)
Permite hacer referencia a una celda de Excel.
Caso práctico
1. Abrir el editor de Visual Basic.
Propiedad Valor
(Name) frmCambio
BackColor Amarillo
Ejercicios propuestos
1. Diseñe el siguiente formulario:
txtNom
Etiquetas txtEdad
txtFec
cmdAdd cmdFin
Codificación de objetos
En este capítulo veremos la codificación de los objetos de un formulario, para
lo cual tomaremos como ejemplo el siguiente formulario, visto en el capítulo
anterior.
Caso práctico 01
Deseamos programar los controles de tal manera que permita ingresar
una cantidad de soles y cuando se elija cualquiera de las siguientes monedas,
aparezca el valor del tipo de cambio correspondiente. Asimismo cuando se haga
clic en el botón Nuevo, se limpien los valores de los cuadros de texto y los botones
de opción.
Solución:
2. Estando en el Editor de Visual Basic, haga doble clic sobre el fondo de la ventana
del formulario frmCambio y aparecerá la siguiente ventana de diálogo.
Explicación:
Explicación:
Explicación:
80
Excel III 2010
Explicación:
Explicación:
Explicación:
- Se finaliza el programa.
Caso práctico 02
Deseamos programar los botones, Agregar y Salir que permita almacenaren
la hoja de cálculo los datos ingresados en el formulario y cerrar el formulario
respectivamente.
Solución:
Explicación:
a. Declaración de variables.
Ejercicio propuesto
Diseñar un formulario en un nuevo libro de Excel, para ingresar datos a una
factura, al finalizar se debe calcular el IGV y el Neto a pagar.
Asimismo se debe crear un módulo que active el formulario el cual debe ser
asignado a un botón de comando Facturación en la hoja de cálculo, tal como se
muestra en la siguiente figura.
Solución:
frmFactura
txtProd
txtCant
txtPU
cmdReg cmdFin
5. Insertar un módulo.
Evaluación 02
Objetivo
Que el participante diseñe un formulario y codifique los objetos del formulario.
Resolver
1. Abrir el archivo EVALUACION_02.XLSM que le proporcionará el profesor del
curso.
- Pregunta 01.
- Pregunta 02.
- Pregunta 03.
- Pregunta 04.
Ejemplo:
Ejercicio
Diseñar un formulario, que permita a través de un comboBox realizar la
consulta de datos de una lista de una hoja de cálculo de Excel.
Solución:
2. Nombrar los rangos marcados como nom, edad y fono tal como se muestra
en la siguiente figura.
firmConsulta
cmbNom
txtEdad cmbEdad
cmbFono
txtFono cmdFin
Formulario:
(Name) frmConsulta
BackColor Paleta celeste
Caption Consulta de datos
Heigth 180
Width 285
StartUpPosition 0-manual
Left 300
Top 210
Combo1
(Name) cmbNom
RowSource Nom
Combo2
(Name) cmbEdad
RowSource Edad
Visible False
Combo3
(Name) cmbEdad
RowSource Fono
Visible False
Text1
(Name) txtEdad
Enabled False
Text2
(Name) txtFono
Enabled False
CommandButton1
(Name) cmdFin
Enabled False
Sección General
8. Por último ejecute la macro, haciendo clic en el botón Consulta de datos, tal
como se muestra en la siguiente figura:
ListBox
El control ListBox permite añadir elementos en forma de lista y también poder
seleccionar elementos de la misma para trabajar los datos.
Ejemplo:
Ejercicio
Diseñar un formulario, que permita a través de un listBox, se seleccione un
mes y se calcule la utilidad correspondiente.
Solución:
2. Nombrar los rangos marcados como nom, edad y fono tal como se muestra
en la siguiente figura:
frmCalendario
cmbIng
txtIng
cmbEgr
txtEgre
txtUtil
lstMes
cmbFin
Formulario
(Name) frmCalendario
Backcolor Paleta crema
Caption Balance Económico Mensual
Heigth 220
Width 285
StartUpPosition 0-manual
Left 300
Top 210
ListBox1
(Name) lstMes
RowSource meses
Combo1
(Name) cmbIng
RowSource Ingresos
Visible False
Combo2
(Name) cmbEgr
RowSource Egresos
Visible False
Text1
(Name) txtIng
Enabled False
Text2
(Name) txtEgr
Enabled False
Text3
(Name) txtUtil
Enabled False
Text3
(Name) cmdFin
Enabled False
Sección General
8. Por último ejecute la macro, haciendo clic en el botón Utilidades, tal como se
muestra en la siguiente figura.
Caso práctico
Creación de un formulario de gráfico
1. Construya la siguiente hoja de cálculo.
End
End Sub
If (ID = 0 Or M = 0) Then
Exit Sub
End
Else
Select Case ID
Case 1
Select Case M
Case 1
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range(“zona,ene”)
ActiveChart.ChartType = xlColumnClustered
Case 2
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range(“zona,feb”)
ActiveChart.ChartType = xlColumnClustered
Case 3
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range(“zona,mar”)
ActiveChart.ChartType = xlColumnClustered
End Select
Case 2
Select Case M
Case 1
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("vendedor,ene")
ActiveChart.ChartType = xlColumnClustered
Case 2
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("vendedor,feb")
ActiveChart.ChartType = xlColumnClustered
Case 3
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range(“vendedor,mar”)
ActiveChart.ChartType = xlColumnClustered
End Select
End Select
ActiveSheet.ChartObjects(1).Delete
Image1.Picture = LoadPicture(Fname)
Application.ScreenUpdating = True
End If
End Sub
op1 = 0: op2 = 0
m1 = 0: m2 = 0: m3 = 0
cmdNew.Enabled = False
cmdGraph.Enabled = True
End Sub
If m1 = True Then
M=1
End If
End Sub
If m2 = True Then
M=2
End If
End Sub
If m3 = True Then
M=3
End If
End Sub
ID = 1
End If
End Sub
ID = 2
End If
End Sub
ID = 0
M=0
End Sub
Evaluación 03
Objetivo
Que el participante diseñe una aplicación de macros con Visual Basic para
aplicaciones de Microsoft Excel 2010
Resolver
6. Abrir el archivo EVALUACION_03.XLSM que le proporcionará el profesor del
curso.
- Pregunta 01.
- Pregunta 02.
- Pregunta 03.
- Pregunta 04.
Contenido
Macros automáticas............................................................................................... 5
Qué es una macro................................................................................................... 6
Seguridad de macros.............................................................................................. 7
Ejecutar una macro.............................................................................................. 10
A través del comando........................................................................................... 10
A través de un atajo............................................................................................. 11
Guardar un libro con macros en Excel.................................................................. 11
Asignar una macro a un botón............................................................................. 12
Creación de una ficha y un grupo......................................................................... 12
Agregar un botón................................................................................................. 15
Referencia de celdas............................................................................................. 19
Referencia de celdas............................................................................................. 20
Referencias relativas y absolutas......................................................................... 20
Referencias absolutas........................................................................................... 20
Referencias relativas............................................................................................ 21
Vista de códigos de una macro de Excel............................................................... 22
Códigos VBA Básicos............................................................................................. 25
ActiveCell.Offset................................................................................................... 25
Ejercicio................................................................................................................ 26
ActiveCell.Value.................................................................................................... 27
Ejercicio................................................................................................................ 28
ActiveCell.Formula................................................................................................ 29
InputBox............................................................................................................... 31
Ejercicio................................................................................................................ 32
Otros códigos VBA Básicos................................................................................... 34
Práctica dirigida................................................................................................... 36
Editor de Visual Basic para aplicaciones............................................................... 41
Editor de Visual Basic........................................................................................... 42
Descripción del entorno Visual Basic.................................................................... 42
Ventana proyecto - VBA Project........................................................................... 43
Ventana de Propiedades....................................................................................... 45
Ventana de Código............................................................................................... 45
Ventana Inmediato............................................................................................... 45
Conceptos generales............................................................................................ 46
Objeto................................................................................................................... 46
Propiedades.......................................................................................................... 46
Métodos............................................................................................................... 46
Eventos................................................................................................................. 46
Módulos................................................................................................................ 46
Procedimientos..................................................................................................... 47
Variables............................................................................................................... 47
Sentencia DIM...................................................................................................... 47
Option Explicit...................................................................................................... 47
Ámbito de las variables........................................................................................ 49
Variables locales................................................................................................... 49
Variables globales................................................................................................ 49
Variables estáticas................................................................................................ 49
Ejercicios............................................................................................................... 49
Funciones básicas................................................................................................. 56
If Then Else........................................................................................................... 56
Do Loop Until........................................................................................................ 58
Fort To Next.......................................................................................................... 61
Práctica calificada................................................................................................ 65
Evaluación 01....................................................................................................... 66
Diseño de formularios.......................................................................................... 68
Insertar un formulario.......................................................................................... 68
Cuadro de herramientas....................................................................................... 69
Seleccionar objetos............................................................................................... 70
Etiqueta (Label).................................................................................................... 70
Cuadro de texto (Textbox)..................................................................................... 70
Cuadro combinado (ComboBox)........................................................................... 70
ListBox (Cuadro de lista)....................................................................................... 70
Casilla de verificación (CheckBox)........................................................................ 70
Botón de opción (OptionButton)........................................................................... 70
Botón de alternar (ToggleButton)......................................................................... 71
Marco (Frame)...................................................................................................... 71
Botón de comando (CommandButton)................................................................. 71
Barra de tabulaciones (TabStrip).......................................................................... 71
Página múltiple (MultiPage)................................................................................. 71
Barra de desplazamiento (ScrollBar).................................................................... 71
Botón de número (SpinButton)............................................................................. 71
Imagen (Image).................................................................................................... 72
Referencia (RefEdit).............................................................................................. 72
Caso práctico........................................................................................................ 72
Ejercicios propuestos............................................................................................ 75
Codificación de objetos......................................................................................... 78
Caso práctico 01................................................................................................... 78
Caso práctico 02................................................................................................... 82
Ejercicio propuesto............................................................................................... 85
Práctica calificada................................................................................................ 91
Evaluación 02....................................................................................................... 92
Trabajar con ComboBox y ListBox......................................................................... 94
Combobox............................................................................................................ 94
Ejercicio................................................................................................................ 94
ListBox.................................................................................................................. 99
Ejercicio................................................................................................................ 99
Desarrollo de un caso práctico........................................................................... 105
Caso práctico...................................................................................................... 106
Creación de un formulario de gráfico................................................................. 106
Práctica calificada.............................................................................................. 111
Evaluación 03..................................................................................................... 112
Contenido........................................................................................................... 113