Вы находитесь на странице: 1из 114

Macros

Excel III 2010


Técnico en Computación

Excel III 2010

Director del Programa : Lic. Jaime Benavides Flores.


Coordinador General : Lic. Daniel Sanchez Gamboa.
Coordinador Académico : Ing. Eloy Sotelo Cruz.
Elaboración : Prof. Roque De la Cruz.
Diagramación : Rogger´s Publicidad - Sr. Javier Almora Oliva.

© Los derechos de edición, distribución y comercialización de esta obra son de exclusividad del Instituto Superior Tecnológico IDAT

2 Programa de Diseño, Publicidad y Extensión


Excel III 2010

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.

La hoja electrónica Excel es ampliamente conocida, en forma generalizada, por


profesionales y estudiantes en proceso de formación, pero hay una gran cantidad
de usuarios que no conocen a profundidad su gran potencial y adaptabilidad
a los diferentes campos del conocimiento Para científicos e ingenieros, el Excel
constituye una herramienta computacional muy poderosa.

En este manual se brinda una introducción a algunas actividades de


programación con macros escritos en VBA, desde una hoja electrónica de Excel.

Lic. Jaime Benavides Flores


Director del Programa de
Diseño, Publicidad y Extensión

Programa de Diseño, Publicidad y Extensión 3


4
Sesión 1
Macros automáticas EXCEL III 2010
Técnico en Computación

Qué es una macro


Una Macro automática es una secuencia de pasos pregrabados que contienen
comandos realizados en la hoja de cálculo, el cual se puede ejecutar a través de
un atajo o botón de comandos asignado a la macro.

Por ejemplo, si frecuentemente aplicamos los mismos formatos personalizados


a una tabla, podemos crear una macro que lo haga automáticamente.

La macro tendría que contener los siguientes procesos:

1. Seleccionar un rango de celdas.

2. Aplicar los formatos de bordes.

3. Aplicar los formatos de relleno.

Todos estos pasos se guardan con un nombre de macro, los cuales se podrá
ejecutar más adelante con un solo clic.

Para trabajar con las herramientas de macros en Microsoft Excel 2010


debemos de activar en primer lugar la Ficha Programador. Para activarla realice
los siguientes pasos:

6 Programa de Diseño, Publicidad y Extensión


Excel III 2010

1. Seleccione el menú Archivo.

2. Haga clic en Opciones.

3. Haga clic en Personalizar la cinta de opciones.

4. Active la casilla correspondiente a la ficha Programador.

5. Haga clic en Aceptar.

6. Luego podremos elegir la ficha Programador, tal como se muestra en la


siguiente figura:

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.

Para modificar la seguridad de macros, realice los siguientes pasos:

1. Seleccione la ficha Programador.

Programa de Diseño, Publicidad y Extensión 7


Técnico en Computación

2. Haga clic en el botón Seguridad de Macros que se encuentra en el grupo


Código.

3. En el panel derecho de la siguiente ventana de diálogo, seleccione Habilitar


todas las macros y active la casilla Confiar en el acceso al modelo de objetos
de proyectos de VBA.

Para grabar una macro, realice los siguientes pasos:

1. Seleccione la ficha Programador.

2. Seleccione el botón Grabar macro.

8 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. En la siguiente ventana de diálogo, asignar un nombre a la macro, por


ejemplo Formatos, una letra para el atajo por ejemplo la letra f (minúscula)
y una descripción de la macro (opcional).

4. Realice cuidadosamente todas las operaciones que desee grabar, por ejemplo:

- Seleccione un rango de cuatro celdas en la hoja Prueba.

- Seleccionar la ficha Inicio.

- Muestre la ficha fuente.

Programa de Diseño, Publicidad y Extensión 9


Técnico en Computación

- En la siguiente ventana de diálogo aplique formato de bordes y relleno,


según las indicaciones del profesor.

5. Por último para detener la grabación seleccione la ficha Programador, luego


haga clic en el botón Detener grabación.

Ejecutar una macro


Para ejecutar una macro, se puede realizar de varias formas:

A través del comando


Cuando la macro
se está 1. Seleccione la ficha Programador.
ejecutando,
guarda todas
las acciones que 2. Seleccione el botón Ver macros.
realicemos

10 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. En la siguiente ventana de diálogo, elija la macro que desee ejecutar.

4. Haga clic en Ejecutar.

5. Ver el resultado de la ejecución de la macro

A través de un atajo
- Presione simultáneamente las teclas Ctrl + F.

- Ver el resultado de la ejecución de la macro.

Guardar un libro con macros en Excel


Para guardar un libro que contenga macros, realice los siguientes pasos:

1. Seleccione el menú Archivo.

2. Seleccione la opción Guardar.

Programa de Diseño, Publicidad y Extensión 11


Técnico en Computación

3. Como es la primera vez que se guarda el libro con macro, aparecerá


la siguiente ventana de diálogo, elija el botón No para guardar el libro
habilitado para macros.

4. En la siguiente ventana de diálogo, el nombre del libro será Demo_macros y


elija como tipo de archivo Libro de Excel habilitado para macros.

Asignar una macro a un botón


Una manera más adecuada de ejecutar una macro es a través de botones de
comando, para lo cual crearemos:

La ficha : Omega SAC

El grupo : Mis formatos

El botón de comando : Bordes personales

Creación de una ficha y un grupo


Para crear una ficha realice los siguientes pasos:

1. Seleccione el menú Archivo.

12 Programa de Diseño, Publicidad y Extensión


Excel III 2010

2. Seleccione Opciones.

3. En la siguiente ventana de diálogo seleccione Personalizar la cinta de


opciones.

4. En el panel derecho de la ventana, haga clic en el botón Nueva ficha.

5. Por último haga clic en Aceptar para ver la ficha creada.

6. Luego haga un clic derecho sobre el Nuevo grupo y seleccione Personalizar


la cinta de opciones.

Programa de Diseño, Publicidad y Extensión 13


Técnico en Computación

7. En la siguiente ventana haga clic derecho sobre el elemento Nueva ficha y


elija Cambiar nombre.

8. Luego escriba el nuevo nombre para la ficha.

9. En forma similar haga clic derecho sobre elemento Nuevo grupo para
cambiarle de nombre.

14 Programa de Diseño, Publicidad y Extensión


Excel III 2010

10. Luego cambie el nombre para el nuevo grupo.

El resultado final debe ser similar al de la siguiente figura:

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.

Programa de Diseño, Publicidad y Extensión 15


Técnico en Computación

2. En la siguiente ventana de diálogo, seleccione:

a. El grupo Mis formatos.

b. En comandos disponibles Macros.

c. Seleccione la macro Formatos.

3. Luego cambiaremos la imagen y el nombre del botón insertado tal como se


muestra en la siguiente figura.

4. El resultado final será:

16 Programa de Diseño, Publicidad y Extensión


Excel III 2010

5. Finalmente pruebe que el botón funcione, seleccione el rango de celdas de la


hoja Tabla1y haga clic en el botón Bordes personales, en forma similar con
los rangos de las listas de las hojas Tabla2 y Tabla3.

Programa de Diseño, Publicidad y Extensión 17


Técnico en Computación

18 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 2
Referencia de celdas
Técnico en Computación

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.

1. Ubique el puntero de celda en B3.

2. Seleccione la ficha Programador.

3. Haga clic en Grabar macro.

4. Asigne como nombre de la macro Movimiento y la letra de método abreviado


será la letra m.

20 Programa de Diseño, Publicidad y Extensión


Excel III 2010

5. Desplace el puntero de celda a la última columna y descienda una fila, realice


el movimiento utilizando las teclas direccionales del teclado.

6. Detener la macro.

7. Ahora ejecutaremos la macro estando el puntero en la celda H3.

8. El resultado que esperamos encontrar es que el puntero de celda se desplace


cuatro columnas a la derecha y una fila hacia abajo, pero sin embargo se
mueve a la celda F4, tal como se hizo cuando se grabó la macro. Esto es debido
a que Microsoft Excel por defecto tiene predeterminado un direccionamiento
absoluto cuando se graba el movimiento del puntero de celda.

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.

Programa de Diseño, Publicidad y Extensión 21


Técnico en Computación

Luego continúe a partir del paso (3).

La nueva macro se llamará Relativo y su tecla de método abreviado la letra r.

Si ahora probamos la ejecución de la macro Relativo estando en la celda H3,


veamos lo que ocurre.

Ahora si se desplaza cuatro columnas a la derecha y desciende una fila, porque


la referencia es relativa a la posición actual del puntero de celda.

Vista de códigos de una macro de Excel


Para observar los códigos de una macro crearemos en primer lugar una
pequeña macro que realice los siguientes procesos:

1. La macro se llamará Fuente y su atajo será Ctrl + F.

22 Programa de Diseño, Publicidad y Extensión


Excel III 2010

2. Aplicará a la celda activa los formatos de Negrita, Cursiva, Subrayado doble.

3. Luego ir a la ficha Programador y Detener la grabación.

4. A continuación probemos la ejecución de la macro, por ejemplo escriba en la


celda D3 el texto TECNICO EN EXCEL.

5. Luego estando en dicha celda presione simultáneamente las teclas Ctrl +F, el
resultado será:

6. Luego iremos al Editor de Visual Basic para visualizar el código.

Programa de Diseño, Publicidad y Extensión 23


Técnico en Computación

7. Que es lo que significa esto nos preguntaremos asombrados, a continuación


se da una explicación de lo que ha hecho Excel:

Sub y End Sub

Indican el inicio y final del procedimiento de la macro Fuente.

Lo que aparece con apostrofe son solo comentarios que no inciden en la


ejecución de la macro y aparecen en color verde.

Selection.Font.Bold = True

Indica que se ha asignado el atributo de negrita (Bold) a la celda activa.

Selection.Font.Italic = True

Indica que se ha asignado el atributo de cursiva (Italic) a la celda activa.

Selection.Font.Underline = xlUnderlineStyleDouble

Indica que se ha asignado el atributo de subrayado doble (StyleDouble)


a la celda activa.

8. Para comprender mejor realice los siguientes cambios dentro del editor de
Visual Basic.

24 Programa de Diseño, Publicidad y Extensión


Excel III 2010

9. Cierre el Editor de Visual Basic.

10. Seleccione la celda B2 y escriba.

11. Ejecute nuevamente la macro con el atajo Ctrl + F, el resultado será:

Códigos VBA Básicos


ActiveCell.Offset
Desplaza el puntero de celda “F” Filas a la derecha o izquierda y “C” Columnas
hacia abajo o hacia arriba, dependiendo si los valores de F y C son positivos o
negativos respectivamente.

Sintaxis:

ActiveCell.Offset(F,C).Select

Donde:

F Números de filas a desplazarse.

C Número de columnas a desplazarse.

Ejemplo:

ActiveCell.Offset(0,2).Select

Desplaza el puntero dos columnas a la derecha

ActiveCell.Offset (3,0).Select

Desplaza el puntero tres filas hacia abajo

ActiveCell.Offset (1,5).Select

Desplaza el puntero una fila hacia abajo y cinco columnas a la derecha

ActiveCell.Offset (-2,-4).Select

Desplaza el puntero dos filas hacia arriba y cuatro columnas a la izquierda

Programa de Diseño, Publicidad y Extensión 25


Técnico en Computación

Ejercicio
Veamos ahora como podemos desplazar el puntero de celda, mediante código
de VBA.

Repetiremos el ejercicio siguiente: deseamos desplazar el puntero de celda al


final de la siguiente fila y desplazarnos una fila hacia abajo (ver la siguiente figura).

Solución:

1. Ir a la ficha Programador.

2. Seleccione el botón Macros.

3. En la siguiente ventana de diálogo, escriba el nombre de la nueva macro, por


ejemplo Desplazamiento y luego haga clic en Crear.

4. En la siguiente ventana de códigos, escriba los siguientes códigos para el


procedimiento Desplazamiento.

5. Luego cierre la ventana del editor de Visual Basic.

26 Programa de Diseño, Publicidad y Extensión


Excel III 2010

6. Ahora ubique el puntero de celda en la posición B3.

7. Por último ejecute la macro.

8. El resultado será el mismo que se logró cuando se grabó las acciones de


desplazamiento de manera manual.

ActiveCell.Value
Nos permite asignar un valor a la celda activa.

Sintaxis:

ActiveCell.Value = Dato

Donde:

Dato : Es el valor que se almacenará en la celda activa

Ejemplo:

ActiveCell.Value = 10

ActiveCell.Value = “IDAT”

Programa de Diseño, Publicidad y Extensión 27


Técnico en Computación

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.

2. Seleccione el botón Macros.

3. En la siguiente ventana de diálogo, escriba el nombre de la nueva macro, por


ejemplo Datos y luego haga clic en Crear.

4. En la siguiente ventana de códigos, escriba los siguientes códigos para el


procedimiento Datos.

5. Luego cierre la ventana del editor de Visual Basic

28 Programa de Diseño, Publicidad y Extensión


Excel III 2010

6. Ahora ubique el puntero de celda en la posición B4.

7. Por último ejecute la macro Datos.

8. El resultado será similar al de la siguiente figura:

A continuación veremos el código para calcular el importe.

ActiveCell.Formula
Nos permite asignar un valor a la celda activa como resultado de una fórmula.

Sintaxis:

ActiveCell.Formula = Expresión

Donde:

Expresión : Es la expresión de una fórmula entre comillas, cuyo resultado se


almacenará en la celda activa.

Ejemplo:

ActiveCell.Formula = “=C4*D4”

ActiveCell.Formula = “=C[-2]*C[-1]”

En el primer ejemplo se están multiplicando los valores de las celdas C4 y D4


y en el segundo ejemplo el contenido de las celdas que se encuentra a dos y una
columna a la izquierda de la celda activa.

Programa de Diseño, Publicidad y Extensión 29


Técnico en Computación

Ejercicio:

Modificar la macro anterior para que calcule el importe de la compra.

Solución:

1. Edite la macro Datos para modificarla.

Haga clic aquí


para editar la
macro

2. Ahora agregue las dos últimas líneas de código para el.

30 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Donde:

C[n] Indica la referencia a una celda que está a “n” columnas de la celda
activa, por ejemplo:

C[-1] Indica la celda que se encuentra una columna a la izquierda


de la celda activa.

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.

3. Luego cierre la ventana del editor de Visual Basic.

4. Ahora ubique el puntero de celda en la posición B4.

5. Por último ejecute la macro Datos.

6. El resultado será similar al de la siguiente figura:

InputBox
Nos permite ingresar datos.

Sintaxis:

InputBox([prompt],[Title],[Default],[xpos],[ypos]

Programa de Diseño, Publicidad y Extensión 31


Técnico en Computación

Donde:

Prompt : Es el texto mostrado en el cuadro de diálogo.

Title : Texto de título para el cuadro de diálogo.

Default : Valor por defecto mostrado en el cuadro de diálogo.

Xpos,Ypos : La pantalla se ubicar según las coordenadas.

Ejemplo:

ActiveCell.Value = InputBox("Que estudias","IDAT", "escriba el curso", 9000,


3000)
Título

Prompt

Texto por Default


Ejercicio
Empleando InputBox ingrese el nombre del curso en la celda activa de la
siguiente hoja de cálculo.

Solución:

1. Ir a la ficha Programador.

2. Seleccione el botón Macros.

3. En la siguiente ventana de diálogo, escriba el nombre de la nueva macro, por


ejemplo Ingreso y luego haga clic en Crear.

32 Programa de Diseño, Publicidad y Extensión


Excel III 2010

4. En la siguiente ventana de códigos, escriba los siguientes códigos para el


procedimiento Ingreso.

5. Luego cierre la ventana del editor de Visual Basic.

6. Ahora ubique el puntero de celda en la posición C7.

7. Por último ejecute la macro.

Programa de Diseño, Publicidad y Extensión 33


Técnico en Computación

8. Se mostrará la siguiente
ventana de diálogo.

9. Modifique el texto por


defecto y escriba como
nombre del curso
Macros en Excel y haga
clic en Aceptar.

10. El resultado final será similar al de la siguiente figura Otros códigos.

Otros códigos VBA Básicos


Código Descripción
Selection.EntireRow.Insert Inserta una fila en la hoja de cálculo

Selection.EntireColumn.Insert Inserta una columna en la hoja de cálculo

Selection.EntireRow.Delete Elimina una fila en la hoja de cálculo

Selection.EntireColumn.Delete Elimina una columna en la hoja de cálculo

34 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 3
Práctica dirigida
Técnico en Computación

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.

a. Se ingresará a través de un InputBox c/u de las ventas del día Lunes.

b. Luego el puntero se debe desplazar a la siguiente fila debajo de la venta


de la primera sucursal (Miraflores).

Los datos a ingresar serán los que se muestran en la siguiente figura:

Solución:

- Solo indicaremos la ventana de códigos, porque los pasos para llegar


hasta él ya se han detallado en los ejercicios anteriores.

36 Programa de Diseño, Publicidad y Extensión


Excel III 2010

- Al ejecutar la macro se mostrará la siguiente ventana de diálogo e ingrese la


venta para la primera sucursal, tal como se muestra en la siguiente figura:

- En forma similar ingre el valor de las ventas de las demás sucursales, el


resultado final será:

- Ejecutar la macro para los demás día de la semana. Usted se preguntará


porque repetir la macro siete veces, habrá una manera para indicarle a
la macro que se ejecute siete veces a través de un código, pues si la hay.
Eso lo veremos más adelante (For-To-Next).

2. Crear una macro Notas, que permita ingresar las notas de los siguientes
alumnos y calcule su promedio.

a. Se ingresará a través de un InputBox c/u de las notas del primer alumno.

b. Se calculará su promedio.

c. Luego el puntero se debe desplazar a la siguiente fila debajo de la nota


del primer curso (Windows).

Programa de Diseño, Publicidad y Extensión 37


Técnico en Computación

d. Los datos a ingresar serán los que se muestran en la siguiente figura:

Solución:

- Solo indicaremos la ventana de códigos, porque los pasos para llegar


hasta él ya se han detallado en los ejercicios anteriores.

- Ejecute la macro para ingresar las notas, notaremos que el promedio se


calcula automáticamente.

38 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. Crear la ficha Práctica que contengan un grupo Ejercicios e inserte dos


comandos de macros de las preguntas 1 y 2 respectivamente, tal como se
muestra en la siguiente figura:

Solución:

Hay que personalizar la cinta de opciones:

a. Primero creamos la ficha Práctica.

b. Luego creamos el grupo Ejercicios en la ficha Práctica.

c. Por último agregamos las macros Ventas y Notas en el grupo Ejercicios.

Programa de Diseño, Publicidad y Extensión 39


Técnico en Computación

40 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 4
Editor de Visual Basic
para aplicaciones
Técnico en Computación

Editor de Visual Basic


Descripción del entorno Visual Basic
El Editor de Visual Basic para Aplicaciones es la aplicación de Microsoft Excel
donde se escriben y guardan las macros.

Se accede a través de la ficha Programador y elegir el botón de Visual Basic o


con el atajo Alt + F11.

La ventana del editor VBA es similar al de la siguiente figura:

El editor contiene 4 secciones principales:

a. La Ventana Proyecto (parte izquierda superior).

b. La Ventana Propiedades (parte izquierda inferior).

c. La Ventana de Código (parte derecha).

d. La Ventana Inmediato (parte inferior derecha).

42 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Ventana proyecto - VBA Project


Muestra los libros de Excel abiertos, usualmente verás nombres del tipo
"VBAProject" y entre paréntesis el nombre del archivo, por ejemplo VBAProject
(04.xlsm), luego verás tres carpetas más por ejemplo: Hoja1 (Control), Hoja2
(Inventario), Hoja3 (Ventas), ThisWorkbook y Módulo. Haciendo doble clic en
ellas activarás la ventana donde se escriben las macros.

En la ventana de Proyecto hay carpetas donde se guardarán y escribirán las


macros. Haga clic en el botón Alternar Carpetas para ordenar los elementos, tal
como se muestra en la siguiente figura:

Ver objetos Alternar carpetas

Ver código

- Proyectos:

En un primer nivel tenemos los proyectos. VBAProject(04.xlsm) es la carpeta


principal, asociada a un libro Excel determinado, donde insertaremos todo
lo referido a las macros para dicho libro.

- Carpetas:

En un segundo nivel tenemos 3 carpetas:

a. Microsoft Excel Objetos.

Esta carpeta contiene los siguientes elementos:

- ThisWorkbook siempre está presente. Si escribimos una macro aquí


la misma afectará a todo el libro.

- Hoja1(Control) hace referencia las hojas de Excel, si escribimos una


macro aquí la misma solo afectará a la hoja Control, así en forma
similar para todas las demás hojas del libro.

Programa de Diseño, Publicidad y Extensión 43


Técnico en Computación

b. Formularios.

Los formularios son más conocidos como UserForms, se agregan desde


el menú Insertar > Userform.

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.

Podemos insertar tantos módulos como necesitemos.

Haciendo doble clic izquierdo en cualquiera de estos objetos verás que


se habilita la Ventana de Código de la izquierda (una hoja en blanco
grande). En la misma es donde se escriben las macros.

Recomendaciones antes de escribir una macro:

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

- Si la macro afectará a todo un libro en particular escríbela en el objeto


ThisWorkbook. Estas suelen ser macros que se ejecutan al abrir, cerrar o
guardar el libro.

- Si la macro es de tipo genérica escríbela en un Módulo.

- Si quieres hacer un formulario utiliza el objeto Userform.

44 Programa de Diseño, Publicidad y Extensión


Excel III 2010

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.

Programa de Diseño, Publicidad y Extensión 45


Técnico en Computación

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:

- Procesador = 1.8 GHz

- RAM = 2 GB

- Disco Duro = 160 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.

Los métodos son un conjunto de procedimientos que permiten a un objeto


ejecute una acción o tarea sobre sí mismo. Por ejemplo, para un formulario
tenemos el método Hide que hará que el formulario se oculte; o el método Show
que hará que el formulario se vuelva a mostrar.

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).

También puede darse debido a la ejecución de código (sentencias). Entonces


al efectuarse el evento correspondiente se ejecutará el respectivo código que se
coloque en ese evento.

Módulos
Un módulo es un contenedor
para los procedimientos como
se muestra en la siguiente
figura:

46 Programa de Diseño, Publicidad y Extensión


Excel III 2010

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:

Integer Para almacenar números enteros.

Single Para almacenar números con decimales.

Currency Para almacenar datos tipo moneda.

String Para almacenar texto.

Boolean Para contener el valor verdadero o falso.

Date Para almacenar fechas.

Sentencia DIM
Mediante la instrucción DIM al principio del código, permite declarar a las
variables

Ejemplo:

DIM Producto As String, Cant As Integer

Option Explicit
Mediante la instrucción Option Explicit al principio del código, obliga a declarar
todas las variables.

Ejemplos:

- Variable de tipo Integer

Sub Entero()

Dim CantAs Integer

Cant = 6

ActiveCell.Value = Cant

End Sub

Programa de Diseño, Publicidad y Extensión 47


Técnico en Computación

- Variable de tipo String

Sub Texto()

Dim Producto As String

Producto = “Leche Gloria”

ActiveCell.Value = Producto

End Sub

- Variable de tipo Currency

Sub Moneda()

Dim PU As Currency

PU = 3.2

ActiveCell.Value = PU

Selection.NumberFormat = “$ #,###.00”

End Sub

- Variable de tipo Boleano

Sub Logico()

Dim Tipo As Boolean

Tipo = True

ActiveCell.Value = Tipo

End Sub

- Variable de tipo Fecha

Sub Fecha()

Dim Fecvta As Date

Fecvta = Now()

ActiveCell.Value = Fecvta

Selection.NumberFormat = “dd/mm/yyyy”

End Sub

48 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Ámbito de las variables


Accesibles en cualquier
parte del programa

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 los formularios A y B e inserte dos botones de comando, tal como


se muestra en la siguiente figura.

Programa de Diseño, Publicidad y Extensión 49


Técnico en Computación

Seleccione el menú Insertar / UserForm.

2. Propiedades de los formularios.

Propiedades Formulario 1 Formulario 2

Name frmA frmB

Caption Formulario A Formulario B

BackColor Amarillo Celeste

3. Propiedades de los botones.

Propiedades Botón 1 Botón 2

Name cmdB cmdA

Caption Ver Formulario B Ver Formulario A

BackColor Amarillo Celeste

4. Codificación de los botones de comando.

5. Ejecute la macro para verificar.

50 Programa de Diseño, Publicidad y Extensión


Excel III 2010

B. Identificación de tipos de variables:

1. Crear el módulo1.

2. Digite los siguientes procedimientos.

3. Inserte en la hoja de cálculo cinco botones de comando a los que se les


asignará la macro de cada uno de los procedimientos.

Programa de Diseño, Publicidad y Extensión 51


Técnico en Computación

4. El primer botón se llamará Cantidad y se le asignará la macro del


procedimiento Entero.

5. En forma similar se hará para los demás botones, según la siguiente tabla.

Botón Texto del botón Macro

1 Producto Texto

2 Cantidad Entero

3 Precio Moneda

4 Fec_vta Fecha

5 Estado Lógico

6. Luego reubica estos botones en la hoja de cálculo, tal como se muestra


en la siguiente figura:

7. Para verificar la ejecución de las macros, ubique el puntero de celda en


la columna derecha de cada botón.

52 Programa de Diseño, Publicidad y Extensión


Excel III 2010

C. Identificar el ámbito de las variables.

1. Crear el siguiente formulario, con los siguientes botones de comando.

Caption

cmdLocal

frmVariables
cmdEstatica Caption

cmdPublica

2. Escriba los siguientes códigos para cada uno de los objetos.

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.

Programa de Diseño, Publicidad y Extensión 53


Técnico en Computación

4. Verifique como cambian las variables, según su declaración.

- La variable A es local, es decir que cada vez que ejecutemos el


procedimiento Local su valor se reinicia.

- La variable B es estática, es decir cuando se ejecuta el procedimiento


Estatica su valor se modifica, al ejecutar otro procedimiento el valor
cambia, pero al regresar vuelve con el valor que se salió.

- La variable C es pública, es decir cambia en cualquiera de los


procedimientos.

54 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 5
Funciones básicas
Técnico en Computación

Funciones básicas
If Then Else
Esta instrucción permite ejecutar ciertas líneas de código cuando la expresión
se cumpla.

Sintaxis:

IF expresión THEN acción_V ELSE acción_F END IF

Donde:

Expresión Condición a evaluar.

Acción_V Instrucciones a ejecutarse cuando la expresión sea verdadera.

Acción_F Instrucciones a ejecutarse cuando la expresión sea falsa.

Ejemplo:

Resolver la siguiente hoja de cálculo, empleando la instrucción IF para obtener


el valor de la observación.

La macro se llamará Calificaciones y se asignará al botón de comando Ingresar


notas.

Solución:

1. Seleccione la ficha Programador.

2. Seleccione la opción Macros.

3. En la siguiente ventana de diálogo, escriba el nombre de la macro


Calificaciones, luego haga clic en botón Crear.

56 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Aparecerá la ventana de código:

4. Escriba el código para la macro.

Programa de Diseño, Publicidad y Extensión 57


Técnico en Computación

5. Luego insertar un botón de comando a la hoja de cálculo y asígnale la macro


Calificaciones.

6. Ejecute la macro haciendo clic en el Botón Ingresar notas, ingrese los


siguientes datos de prueba.

Do Loop Until
Esta instrucción permite ejecutar ciertas líneas de código hasta que la
expresión se cumpla.

Sintaxis:

Do

Instrucciones

Loop Until Expresion

Donde:

Expresión Condición a evaluar

Instrucciones Líneas de código a ejecutar

58 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Ejemplo:

Resolver la siguiente hoja de cálculo, empleando la instrucción Do Loop Until


para ingresar notas de un grupo de alumnos.

La macro se llamará Registro y se asignará al botón de comando Registrar


notas.

Solución:

1. Ir al Editor de Visual Basic y luego, e inserte un nuevo módulo.

2. Escriba los códigos para el procedimiento Registro.

Programa de Diseño, Publicidad y Extensión 59


3. Cierre el Editor de Visual Basic, luego inserte un botón de comando y asígnelo
al procedimiento Registros, el texto del botón será Registro de notas.

4. Ubique el puntero de celda en la posición B3, e ingrese los siguientes datos


de prueba:

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

6. El resultado final deberá ser similar al de la siguiente figura.

Fort To Next
Esta instrucción permite ejecutar ciertas líneas de código un número determinado
de veces.

Sintaxis:

FOR Var = Inicial TO Final STEP Incremento.

Instrucciones

NEXT Var

Donde:

Var Variable que se va incrementar.

Inicial Valor inicial de la variable.

Final Valor final de la variable.

Ejemplo:

Se tiene un inventario valorado de productos informáticos en cual están


registrados con sus precios acumulados de cada uno de ellos, tal como se muestra
en la siguiente figura:

Programa de Diseño, Publicidad y Extensión 61


Técnico en Computación

Se desea modificar el inventario de tal manera que cada producto se muestre


en forma individual en cada fila, por ejemplo para el producto Teclado, debe
mostrarse en tres filas y con su precio unitario correspondiente (S/ 40.00), para el
audífono en ocho filas y en forma similar para el resto de productos.

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:

1. Ir al Editor de Visual Basic y luego, inserte un nuevo módulo.

2. Escriba los códigos para el procedimiento Inventario.

3. Cierre el Editor de Visual Basic, luego inserte un botón de comando y asígnelo


al procedimiento Inventario, el texto del botón será Inventario detallado.

62 Programa de Diseño, Publicidad y Extensión


Excel III 2010

4. Ubique el puntero de celda en la posición B5, luego haga clic en el botón


Inventario valorado.

5. El resultado será similar al de la siguiente figura.

Programa de Diseño, Publicidad y Extensión 63


Técnico en Computación

64 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 6
Práctica calificada
Técnico en Computació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.

2. Las instrucciones las encontrará en la hoja Especificaciones

3. Resolver las hojas:

- Pregunta 01

- Pregunta 02

- Pregunta 03

- Pregunta 04

4. Al terminar guardar y cerrar el libro.

5. Enviar el archivo de la práctica al correo del profesor.

66 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 7
Diseño de formularios
Técnico en Computación

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:

1. Abrir el editor de Visual Basic.

2. Estando en el Editor de Visual Basic, seleccione el menú Insertar y luego


haga clic en la opción UserForm.

68 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. Veremos que en la ventana del


Explorador de proyectos, aparece un
objeto Userform1 dentro de la carpeta
Formularios, tal como se muestra en la
siguiente figura.

En el panel derecho aparecerá el formulario en blanco acompañado de un


cuadro de herramientas, tal como se aprecia en la siguiente figura:

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 Etiqueta


Cuadro de texto Cuadro combinado
Cuadro de lista Casilla de verificación
Botón de opción Botón de alternar
Marco Botón de comando
Barra de tabulaciones Página múltiple
Barra de desplazamiento Botón número
Imagen RefEdit

Programa de Diseño, Publicidad y Extensión 69


Técnico en Computación

A continuación detallaremos brevemente cada uno de los controles de la caja


de herramientas.

Seleccionar objetos
Sirve para seleccionar controles que hayamos insertado en el formulario.

Etiqueta (Label)
Sirve para poner un título o un texto.

Ejemplo: podemos poner un texto del tipo “Soles” y ubicarlo en la parte


superior del formulario.

Cuadro de texto (Textbox)


Sirve para que el usuario ingrese datos.

Ejemplo: queremos que el usuario introduzca el valor de una cantidad de


dinero

Cuadro combinado (ComboBox)


Sirve para que el usuario elija una opción de una lista.

Ejemplo: creamos una lista con los meses de Enero a Diciembre para que el
usuario elija uno de ellos.

ListBox (Cuadro de lista)


Sirve para que un usuario rellene o elija varias opciones de una lista.

Ejemplo: creamos una lista con Regiones del país y el usuario deberá elegir
una de ellas.

Casilla de verificación (CheckBox)


Sirve para que un usuario active una determinada función.

Ejemplo: podemos hacer que al cerrar el Userform se imprima un reporte solo


si la casilla de selección está activada.

Botón de opción (OptionButton)


Sirve para que un usuario seleccione sólo una opción entre varias posibilidades.

Ejemplo: que el usuario indique si es de sexo Masculino o Femenino. De todas


las opciones solo se puede seleccionar una de ellas.

70 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Botón de alternar (ToggleButton)


Sirve para activar o desactivar alguna funcionalidad. Este botón adopta el
modo “Encendido” / “Apagado”.

Ejemplo: queremos que el usuario defina su idioma, en modo encendido


español y en modo apagado inglés.

Marco (Frame)
Sirve para agrupar elementos de un formulario (los elementos se deben ubicar
dentro del Marco).

Ejemplo: tenemos varios grupos de botones de opción y para distinguirlos los


agrupamos en un Marco, si en un formulario hay seleccionar un sexo y también
elegir un grado de instrucción, estos deberán estar agrupados en marcos
diferentes.

Botón de comando (CommandButton)


Es un simple botón que nos permite ejecutar acciones, es el control más
utilizado.

Ejemplo: un botón de Aceptar o Finalizar.

Barra de tabulaciones (TabStrip)


En un mismo formulario se pueden crear varias fichas.

Ejemplo: un formulario con tres fichas: Costa, Sierra y Selva, en cada ficha
podemos ubicar sus propios controles.

Página múltiple (MultiPage)


En un mismo formulario se pueden crear distintas páginas.

Ejemplo: un formulario con dos páginas: Local y Provincias. Dentro de cada


página podemos ubicar distintos controles o distintas secciones.

Barra de desplazamiento (ScrollBar)


Si tenemos una lista con muchos elementos el scrollbar nos permite navegarlos.

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.

Botón de número (SpinButton)


Permite incrementar o disminuir valores.

Ejemplo: tenemos una lista con tipos de interés y queremos modificarlos en


cantidades predeterminadas desde el SpinButton.

Programa de Diseño, Publicidad y Extensión 71


Técnico en Computación

Imagen (Image)
Permite introducir imágenes en el Userform.

Ejemplo: queremos introducir imágenes de productos.

Referencia (RefEdit)
Permite hacer referencia a una celda de Excel.

En la siguiente figura se muestra un formulario con algunos controles descrito


anteriormente.

Haciendo doble clic


en cada control se
abrirá la ventana
de código donde
podremos escribir y
asociarle una macro.

Caso práctico
1. Abrir el editor de Visual Basic.

2. Estando en el Editor de Visual Basic, seleccione el menú Insertar y luego


haga clic en la opción UserForm.

72 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. Modificar las propiedades del formulario.

Propiedad Valor

(Name) frmCambio

BackColor Amarillo

Caption Tipo de cambio

El resultado será similar al de la siguiente figura:

4. Agregar los siguientes controles al formulario.

Programa de Diseño, Publicidad y Extensión 73


Técnico en Computación

5. Modificar las propiedades de los controles:

Objeto Propiedad Valor


Autosize True
Label1
Caption Soles
Autosize True
Label2
Caption Cambio
TextBox1 (Name) txtSoles
TextBox2 (Name) txtCambio
Frame1 Caption Moneda
(Name) opEur
OptionButton1 Autosize True
Caption Euros
(Name) opDol
OptionButton2 Autosize True
Caption Dólares
(Name) opYen
OptionButton3 Autosize True
Caption Yen
(Name) cmdNew
ComandButton1
Caption Nuevo
(Name) cmdFin
ComandButton2
Caption Salir

El resultado debe ser similar al de la siguiente figura, la codificación de los


objetos lo veremos en el siguiente capítulo.

74 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Ejercicios propuestos
1. Diseñe el siguiente formulario:

txtNom

Etiquetas txtEdad

txtFec

cmdAdd cmdFin

2. Diseñe el siguiente formulario:

Programa de Diseño, Publicidad y Extensión 75


Técnico en Computación

76 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 8
Codificación de objetos
Técnico en Computación

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:

1. Abrir el libro 08.xlsxm que le proporcionará el profesor del curso.

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.

78 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. A continuación vamos a declarar las variables para lo cual haga clic en la


lista desplegable de Userform, luego seleccione la opción (General), tal
como se aprecia en la siguiente figura.

4. Luego escriba las siguientes líneas de declaraciones.

5. A continuación vamos a codificar el objeto txtSoles, para lo cual haga doble


clic sobre el objeto y en la ventana de código escriba lo siguiente.

Explicación:

Cuando se detecte un cambio en el cuadro de texto txtSoles

- Se asigna a la variable Soles el valor numérico del cuadro de texto txtSoles.

- Se obtiene el tipo de cambio en Euros, Dólares y Yenes.

- Se inicializa en Falso el estado de selección de los botones opEur, opDol y opYen.

- Se inicializa en un valor vacío el cuadro de texto txtCambio.

Programa de Diseño, Publicidad y Extensión 79


6. En forma similar repita los procedimientos para los demás objetos.

Explicación:

Cuando se haga clic en el botón de opción opEur.

- Asignar a la variable Cambio el valor de la variable Euros.

- Asignar al cuadro de texto txtCambio el valor de la variable Cambio.

Explicación:

Cuando se haga clic en el botón de opción opDol.

- Asignar a la variable Cambio el valor de la variable dolares.

- Asignar al cuadro de texto txtCambio el valor de la variable Cambio.

80
Excel III 2010

Explicación:

Cuando se haga clic en el botón de opción opYen.

- Asignar a la variable Cambio el valor de la variable Yen.

- Asignar al cuadro de texto txtCambio el valor de la variable Cambio.

Explicación:

Cuando se haga clic en el botón de comando cmdNew.

- Se inicializa en un valor vacío el cuadro de texto txtSoles.

- Se inicializa en Falso el estado de selección de los botones opEur, opDol y


opYen.

- Se inicializa en un valor vacío el cuadro de texto txtCambio.

- Se lleva el enfoque al cuadro de texto txtSoles.

Explicación:

Cuando se haga clic en el botón de comando cmdFin.

- Se finaliza el programa.

7. Luego para ejecutar el formulario,


seleccione el menú Ejecutar y haga
clic en ejecutar Sub/UserForm o
presione la tecla F5.

Programa de Diseño, Publicidad y Extensión 81


Técnico en Computación

8. Por último ingrese los siguientes datos de prueba.

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.

Asimismo se debe crear un módulo que incluya un procedimiento que muestre


el formulario, el cual se ejecutará a través de un botón de comando en la hoja
Registro tal como se muestra en la siguiente figura.

Solución:

1. Estando en el Editor de Visual Basic, haga doble clic sobre el fondo de la


ventana del formulario frmCambio.

82 Programa de Diseño, Publicidad y Extensión


Excel III 2010

2. Escriba las siguientes instrucciones en la ventana de códigos.

Explicación:

a. Declaración de variables.

- Se declara como texto la variable Nom.

- Se declara como número entero la variable Edad.

- Se declara como dato de tipo fecha la variable Fecha.

b. Botón de comando Agregar.

Al hacer clic en el botón Agregar.

- Asignar a la variable Nom el contenido del cuadro de texto txtNom.

- Almacenar en la celda activa el valor de la variable Nom.

- Desplazar el puntero de celda una columna a la derecha.

- Asignar a la variable Edad el valor numérico del cuadro de texto txtEdad.

- Almacenar en la celda activa el valor de la variable Edad.

- Desplazar el puntero de celda una columna a la derecha.

- Convertir a fecha el contenido del cuadro de textotxtFec.

- Almacenar en la celda activa el valor de la variable Fecha.

Programa de Diseño, Publicidad y Extensión 83


Técnico en Computación

- Aplicar formato de fecha a la celda activa.

- Limpiar el contenido de los cuadros de texto.

- Llevar el enfoque al cuadro de texto txtNom.

- Desplazar el puntero de celda una fila abajo y dos columnas a la


izquierda.

c. Botón de comando Cerrar.

Cuando se haga clic en el botón de comando cmdFin.

- Se cierra el formulario frmDatos.

3. Ahora inserte un módulo y escriba el siguiente código:

4. Inserte un botón de comando en la hoja Registro y asígnelo a la macro Datos.

84 Programa de Diseño, Publicidad y Extensión


Excel III 2010

5. Ubique el puntero de celda en la posición A4 y ejecute la macro, ingrese lo


siguientes datos de prueba.

6. El resultado final debe ser similar al de la siguiente figura:

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.

Considere que el IGV es del 19%.

Al terminar de ingresar los datos de los productos vendidos, el resultado


deberá ser similar al de la siguiente figura:

Programa de Diseño, Publicidad y Extensión 85


Técnico en Computación

Solución:

1. Se ha nombrado un área de detalle de la factura, tal como se muestra en la


siguiente figura.

2. El formulario tendrá los siguientes objetos:

frmFactura

txtProd

txtCant

txtPU

cmdReg cmdFin

86 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. Propiedades de los objetos.

Objeto Propiedad Valor


(Name) frmFactura
BackColor Verde
Caption Facturación
Formulario Width 330
Height 252
Left 360
Top 210
TextBox1 (Name) txtProd
TextBox2 (Name) txtPU
TextBox3 (Name) txtCant
(Name) cmdReg
CommandButton1 Caption Nuevo
Enabled False
(Name) cmdFin
CommandButton2 Caption Facturar
Enabled False

4. Codificación de los objetos:

Programa de Diseño, Publicidad y Extensión 87


Técnico en Computación

88 Programa de Diseño, Publicidad y Extensión


Excel III 2010

5. Insertar un módulo.

6. Codificar el siguiente procedimiento:

Programa de Diseño, Publicidad y Extensión 89


Técnico en Computación

7. Insertar un botón de comando en la hoja de cálculo y asignarlo al


procedimiento creado, tal como se muestra en la siguiente figura:

8. Por último ejecutar la macro e ingrese los siguientes datos de prueba.

90 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 9
Práctica calificada
Técnico en Computación

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.

2. Las instrucciones las encontrará en la hoja Especificaciones

3. Resolver las hojas:

- Pregunta 01.

- Pregunta 02.

- Pregunta 03.

- Pregunta 04.

4. Al terminar guardar y cerrar el libro

5. Enviar el archivo de la práctica al correo del profesor

92 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 10
Trabajar con
ComboBox y ListBox
Técnico en Computación

Trabajar con ComboBox y ListBox


Combobox
El control Combobox o
cuadro combinado, presenta
opciones disponibles, a través
de una lista desplegable.

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:

1. Ingresar los siguientes datos de prueba a una hoja de cálculo.

2. Nombrar los rangos marcados como nom, edad y fono tal como se muestra
en la siguiente figura.

nom edad fono

94 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. Ir al editor de Visual Basic y diseñe el siguiente formulario:

firmConsulta

cmbNom

txtEdad cmbEdad

cmbFono

txtFono cmdFin

4. Establezca las propiedades de cada objeto

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

Programa de Diseño, Publicidad y Extensión 95


Técnico en Computación

Combo3

(Name) cmbEdad
RowSource Fono
Visible False

Text1

(Name) txtEdad
Enabled False

Text2

(Name) txtFono
Enabled False

CommandButton1

(Name) cmdFin
Enabled False

5. Codificación de los objetos.

Sección General

96 Programa de Diseño, Publicidad y Extensión


Excel III 2010

6. Crear un módulo y agregar el siguiente procedimiento.

Programa de Diseño, Publicidad y Extensión 97


Técnico en Computación

7. Insertar un botón de comando a la hoja de cálculo y vincularlo a la macro


Combo.

8. Por último ejecute la macro, haciendo clic en el botón Consulta de datos, tal
como se muestra en la siguiente figura:

98 Programa de Diseño, Publicidad y Extensión


Excel III 2010

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:

1. Ingresar los siguientes datos a una hoja de cálculo.

Programa de Diseño, Publicidad y Extensión 99


Técnico en Computación

2. Nombrar los rangos marcados como nom, edad y fono tal como se muestra
en la siguiente figura:

meses ingresos egresos

3. Ir al editor de Visual Basic y diseñe el siguiente formulario:

frmCalendario
cmbIng

txtIng

cmbEgr

txtEgre

txtUtil

lstMes

cmbFin

4. Establezca las propiedades de cada objeto.

Formulario

(Name) frmCalendario
Backcolor Paleta crema
Caption Balance Económico Mensual
Heigth 220
Width 285
StartUpPosition 0-manual
Left 300
Top 210

100 Programa de Diseño, Publicidad y Extensión


Excel III 2010

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

Programa de Diseño, Publicidad y Extensión 101


Técnico en Computación

5. Codificación de los objetos.

Sección General

6. Crear un módulo y agregar el siguiente procedimiento.

102 Programa de Diseño, Publicidad y Extensión


Excel III 2010

7. Insertar un botón de comando a la hoja de cálculo y vincularlo a la macro


Lista.

8. Por último ejecute la macro, haciendo clic en el botón Utilidades, tal como se
muestra en la siguiente figura.

Programa de Diseño, Publicidad y Extensión 103


Técnico en Computación

104 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 11
Desarrollo de un
caso práctico
Técnico en Computación

Caso práctico
Creación de un formulario de gráfico
1. Construya la siguiente hoja de cálculo.

2. Ir al editor de Visual Basic y diseñar el siguiente formulario:

106 Programa de Diseño, Publicidad y Extensión


Excel III 2010

3. Codificar los objetos.

Public ID As Integer, M As Integer

Private Sub cmdFin_Click()

End

End Sub

Private Sub cmdGraph_Click()

Dim CurrentChart As Chart

Dim Fname As String

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

Programa de Diseño, Publicidad y Extensión 107


Técnico en Computación

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

Set CurrentChart = ActiveSheet.ChartObjects(1).Chart

Fname = ThisWorkbook.Path & Application.PathSeparator & “temp.gif”

CurrentChart.Export Filename:=Fname, FilterName:=”GIF”

ActiveSheet.ChartObjects(1).Delete

Image1.Picture = LoadPicture(Fname)

Application.ScreenUpdating = True

Kill ThisWorkbook.Path & Application.PathSeparator & “temp.gif”

End If

End Sub

Private Sub cmdNew_Click()

op1 = 0: op2 = 0

m1 = 0: m2 = 0: m3 = 0

cmdNew.Enabled = False

cmdGraph.Enabled = True

End Sub

108 Programa de Diseño, Publicidad y Extensión


Excel III 2010

Private Sub m1_Click()

If m1 = True Then

M=1

End If

End Sub

Private Sub m2_Click()

If m2 = True Then

M=2

End If

End Sub

Private Sub m3_Click()

If m3 = True Then

M=3

End If

End Sub

Private Sub op1_Click()

If op1 = True Then

ID = 1

End If

End Sub

Private Sub op2_Click()

If op2 = True Then

ID = 2

End If

End Sub

Private Sub UserForm_Activate()

ID = 0

M=0

End Sub

Programa de Diseño, Publicidad y Extensión 109


Técnico en Computación

4. Insertar un módulo e insertar el siguiente procedimiento.

5. Insertar el botón de comando Gráficos y vincularlo a la macro Auto_open

6. Ejecutar y probar la macro.

110 Programa de Diseño, Publicidad y Extensión


EXCEL III 2010
Sesión 12
Práctica calificada
Técnico en Computación

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.

7. Las instrucciones las encontrará en la hoja Especificaciones.

8. Resolver las hojas:

- Pregunta 01.

- Pregunta 02.

- Pregunta 03.

- Pregunta 04.

9. Al terminar guardar y cerrar el libro.

10. Enviar el archivo de la práctica al correo del profesor.

112 Programa de Diseño, Publicidad y Extensión


Excel III 2010

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

Programa de Diseño, Publicidad y Extensión 113


Técnico en Computación

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

114 Programa de Diseño, Publicidad y Extensión

Вам также может понравиться