Está en la página 1de 16

CURSO DE MACROS NIVEL I

 OBJETIVO

Al terminar este curso, el alumno estará en capacidad de crear


Macros utilizando la grabadora de Macros de Microsoft Excel, además
modificarla por el editor de Visual Basic y asignarle un Botón, un
gráfico o un método abreviado para su ejecución.

Para lograr el objetivo los asistentes deberán estar familiarizados con


los conceptos básicos de Windows y Excel, preferiblemente haber
asistido al curso de Excel nivel medio y avanzado y al taller de Tablas
Dinámicas.

 CONTENIDO

Qué es una macro?

Grabadora de macros para automatización de tareas simples

Ejecución y seguimiento de macros

Edición de macros

Menús y Botones personalizados

Formularios

Introducción al ambiente de programación

Ejercicios

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Qué es una macro?

Una macro es una combinación de instrucciones que pueden ser


ejecutadas automáticamente con una simple pulsación de teclas. La
palabra macro es una abreviatura de la palabra macroinstrucción que
viene a ser lo mismo que hemos definido. En ocasiones, nos vemos en la
necesidad de realizar una serie de tareas repetitivas de forma rutinaria.
Podemos crear una macro que nos evite ese trabajo. Una macro en sí es
un pequeño programa en código Visual Basic que se graba con un
nombre y que podemos invocar en cualquier momento. También
podemos asignar una combinación de teclas como por ejemplo
Control+Shift+V para invocarla. La ejecución de una macro es muy
rápida, aunque depende de la cantidad de instrucciones que deba
realizar.

Imaginemos que diariamente tenemos que arreglar una tabla de datos


poniéndole color, formato, bordes, etc. para posteriormente imprimirla.
La ilustración de la izquierda muestra la tabla normal, y la de la derecha
arreglada a mano:

Para arreglar la tabla tendríamos que:

1. Seleccionarla
2. Abrir la paleta de bordes y colocar un borde exterior
3. Abrir la paleta de color de fondo y escoger un color
4. Abrir la paleta de color de texto y escoger un color
5. Pulsar un click en el botón del formato monetario
6. Pulsar un click en el botón del formato cursiva
7. Pulsar un click fuera de la tabla y listo

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Estos han sido sólo 7 pasos. Imagina una tarea rutinaria de 200 pasos,
para ello, podemos crear una macro que nos realice el trabajo
automáticamente. Evidentemente, los pasos de la macro han de ser los
correctos, evitando abrir y cerrar menús y opciones innecesariamente,
por lo que la macro tardaría más en ejecutarse.

CREACIÓN DE UNA MACRO PASO A PASO

1. Crea una tabla más o menos como en el ejemplo superior


2. Haz una copia de la tabla en otra hoja (para probar luego la macro)
La copia la puedes hacer arrastrando la pestaña inferior con la tecla
de control pulsada hacia su derecha, de forma que hacemos una
copia de la Hoja1 tal y como se ve en la ilustración:

3. Sitúate en la Hoja1
4. Abre el menú Herramientas\Macro\Grabar nueva macro. Te
aparecerá una ventana donde deberás escribir un nombre para la
macro o aceptar el que te ofrece Excel (Macro1)

5. Acepta el cuadro de diálogo. Sale un pequeño botón con el que


podemos finalizar la grabación o hacer una pausa en la macro.

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
IMPORTANTE: si este botón no aparece lo puedes activar por la barra de
herramientas. A partir de este momento, la macro comienza a grabar
cualquier pulsación, selección, apertura de menús, click, etc. que
realicemos, por lo que debemos tener cuidado en hacer los pasos poco a
poco. A continuación deberás realizar poco a poco los pasos comentados
anteriormente.

1. Selecciona la tabla
2. Abre la paleta de bordes y colocar un borde exterior
3. Abre la paleta de color de fondo y escoger un color
4. Abre la paleta de color de texto y escoger un color
5. Pulsar un click en el botón del formato monetario
6. Pulsar un click en el botón del formato cursiva
7. Pulsar un click fuera de la tabla.
8. Pulsa en el botón Detener grabación

EJECUCIÓN DE LA MACRO

Vamos a probar ahora la macro:

1. Selecciona la Hoja1 (2) que copiaste de la Hoja1 para probar la


macro
2. Selecciona la tabla de datos
3. Abre el menú Herramientas\Macro\Macros. o presiona Alt + F8 Te
aparecerá una ventana con las macros creadas. Se supone que sólo
hay una.
4. Pulsa el botón Ejecutar y evalúa los resultados.

MODIFICACIÓN DE LA MACRO

Abre el menú Herramientas\Macro\Macros y pulsa en Opciones

Desde aquí podemos asignarle la macro a una combinación de teclas


como por ejemplo Control+Z,.si no lo hicimos al momento de grabarla.

Cancela el cuadro y pulsa ahora en el botón Modificar

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Aquí aparece un pedazo de pantalla de Visual Basic. Para los que tienen
nociones de programación, las órdenes les serán familiares. Aquí se
muestran paso a paso todas las acciones que hemos realizado en la
macro. Excel lo ha traducido al lenguaje VB. Desde aquí podemos
también modificar cualquier línea con lo que modificaremos el
comportamiento de la macro.

Observa que muchas órdenes hay que leerlas de derecha a izquierda

Range("A1:C6").Select significa que hemos seleccionado el rango A1:C6

La rutina del programa tiene la siguiente estructura:

Sub Tabla1
Órdenes y acciones...
End Sub

Sub y End Sub marcan el inicio y el fin de la rutina, respectivamente.


De momento no profundizaremos con las rutinas. Simplemente
tendremos una idea de cómo trata Excel las macros. En posteriores
lecciones veremos cómo modificar el código de una macro a nuestro
gusto.

Cierra la ventana. Observa que deberás cerrar una ventana especial


(Visual Basic) para retornar a la ventana de Excel normal

AÑADIR UN BOTÓN EN LA BARRA DE HERRAMIENTAS QUE EJECUTE LA


MACRO

A continuación crearemos un botón y lo añadiremos a la barra de


herramientas Estándar
1. Abre Ver\Barras de herramientas\Personalizar. Selecciona la pestaña
Comandos
2. Sube la lista de la izquierda hasta ver la opción Macros. Selecciónala
con un click. Observa que a la derecha aparece una cara amarilla;

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
arrástrala hasta situarla encima de la barra de herramientas (o en un
extremo).

3. Pulsa en el botón Modificar selección y escoge de la lista la opción


Asignar macro.
4. Selecciona la macro recién creada y acepta.
5. Cierra el cuadro de diálogo que queda abierto.

Ahora ya sólo queda probar el botón para ver la ejecución de la Macro.

OBSERVANDO LOS CODIGOS DE UNA MACRO DE EXCEL

Crearemos una macro y veremos sus códigos:


.
Para observar los códigos de una macro debemos de seguir los
siguientes pasos:

1. Primeramente trasládese a la celda A5 antes de empezar la


grabación de la Macro
2. Presione el Botón Grabar Macro de la barra de Herramientas
Visual Basic. Excel muestra el cuadro de Dialogo Grabar Macro
3. en la opción Método Abreviado escriba la letra r, por lo tanto la
macro se llamara con Control + r
4. Presione el botón Aceptar. Excel inicia la grabación del la
Macro1
5. Trasládese a la celda A1 y escriba Antonio, después presione
Enter para aceptar el valor en la celda
6. Pare la grabación de la macro presionando el botón Detener
Grabación de la barra de herramientas Visual Basic. Excel a
grabado los pasos y a generado un código, Observémoslos:
7. Presione la tecla Alt + la tecla de función F11(Alt + F11). Excel
nos traslada al Editor de Visual Basic. Si este editor no se activa es
que Excel no esta bien instalado o se a borrado. También puede
acceder desde el Menú Herramientas, Macro y Editor de
Visual Basic.

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
8. Active los siguientes cuadros o ventanas:

 De clic en el Menú Ver y elija la opción Explorador de


Proyectos
 De clic en el Menú ver y elija la opción Ventana
Propiedades

Estas dos opciones deben de estar siempre activadas ya que de ahí


depende todo lo que vallamos a hacer.

9. Del cuadro Proyecto de doble clic en Módulos o simplemente


presione el signo de + que aparece en la opción Módulos. Se
activara debajo de Módulos la Opción Modulo1
10. De doble clic en Modulo1. Se mostrara en el Editor de
Visual Basic el código de la macro que grabamos de la siguiente
forma:

Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 08/03/2004 por CURSO DE MACROS NIVEL I
'
' Acceso directo: CTRL+r

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Antonio"
Range("A2").Select
End Sub

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 el final del procedimiento de la


Macro1
 Todo lo que aparece con un apostrofe ´ indica que no se tomara
en cuenta que es solo texto o comentarios y ese texto debe de
aparecer en un color, ya sea el color verde.
 Range("A1").Select Indica que lo primero que hicimos al grabar
la macro fue trasladarnos a la celda A1. La orden Range nos
permite trasladarnos a una celda
 ActiveCell.FormulaR1C1 = "Antonio" Esto indica que se
escribirá en la celda en que se encuentra el valor de texto
Antonio. Todo lo que aparece entre comillas siempre será un
valor de texto. La orden ActiveCell.FormulaR1C1 nos permite
escribir un valor en la celda activa.
 Range("A2").Select Otra vez indicamos que se traslade a la
celda A2. Esto se debe a que cuando escribimos el nombre de
Antonio en A1 presionamos Enter y al dar Enter bajo a la celda
A2.

Para comprender mejor alteraremos el código dentro del editor de Visual


Basic.

Que crees que pasara aquí con nuestra Macro:

Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 08/03/2004 por CURSO DE MACROS NIVEL I
'

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
' Acceso directo: CTRL+r
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Antonio"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Autopista sur No. 49 - 38"
Range("C1").Select
ActiveCell.FormulaR1C1 = "31-2-47-13"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Nogal del Norte"
Range("E1").Select
ActiveCell.FormulaR1C1 = "CIUDAD"

End Sub

Así es acabo de alterar el código y cuando regrese a Excel y ejecute la


macro con Control + r hará lo siguiente:

En A1 escribirá Antonio
En B1 escribirá Autopista sur No. 49 - 38
En C1 escribirá 31-2-47-13
En D1 escribirá Nogal del Norte
En E1 escribirá CIUDAD

Así que salgamos del editor dando clic en el Menú Archivo y eligiendo
la opción Cerrar y volver a Microsoft Excel. Si no desea salir por
completo de clic en el botón Microsoft Excel que se encuentra
activado en la barra de tareas y cuando deseé volver al editor de clic en
el botón Microsoft Visual Basic que se encuentra en la barra de
Tareas.

Ahora ya que salimos de Visual Basic y estamos en Excel de Nuevo


ejecutemos la macro presionando Control + r y veamos los resultados
de nuestra modificación.

Que te parece es sencillo o No?, Claro necesitamos practicar bastante


para dominar esto, así que repasa la Fase 2 cuantas veces sea

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
necesario, otra cosa no trates de generar códigos muy complejos en tus
macros porque te vas a enredar, poco a poco se va lejos.

Códigos Más comunes:

Trasladarse a una Celda


Range("A1").Select
Escribir en una Celda
Activecell.FormulaR1C1="Ramon"
Letra Negrita
Selection.Font.Bold = True
Letra Cursiva
Selection.Font.Italic = True
Letra Subrayada
Selection.Font.Underline = xlUnderlineStyleSingle
Centrar Texto
With Selection
.HorizontalAlignment = xlCenter
End With
Alinear a la izquierda
With Selection
.HorizontalAlignment = xlLeft
End With
Alinear a la Derecha
With Selection
.HorizontalAlignment = xlRight
End With
Tipo de Letra(Fuente)
With Selection.Font
.Name = "AGaramond"
End With
Tamaño de Letra(Tamaño de Fuente)
With Selection.Font
.Size = 15
End With
Copiar
Selection.Copy

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Pegar
ActiveSheet.Paste
Cortar
Selection.Cut
Ordenar Ascendente
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Orden Descendente
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Buscar
Cells.Find(What:="Ramon", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False).Activate
Insertar Fila
Selection.EntireRow.Insert
Eliminar Fila
Selection.EntireRow.Delete
Insertar Columna
Selection.EntireColumn.Insert
Eliminar Columna
Selection.EntireColumn.Delete
Abrir un Libro
Workbooks.Open Filename:="C:\Mis documentos\video safe 3.xls"
Grabar un Libro
ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\piscis.xls",
FileFormat _
:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:= _
False, CreateBackup:=False

La función MsgBox.

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Esta función muestra un mensaje en un cuadro de diálogo hasta que el
usuario pulse un botón. La función devuelve un dato tipo Integer en
función del botón pulsado por el usuario. A la hora de invocar está
función, se permiten diferentes tipos de botones.

Sintáxis de MsgBox.

MsgBox( Mensaje, Botones, Título, Archivo de ayuda, contexto)

Mensaje : Obligatorio, es el mensaje que se muestra dentro del


cuadro de diálogo.

Botones : Opcional. Es un número o una suma de números o


constantes (vea tabla Valores para botones e Iconos), que sirve
para mostrar determinados botones e iconos dentro del cuadro de
diálogo. Si se omite este argumento asume valor 0 que
corresponde a un único Botón OK.

Título : Opcional. Es el texto que se mostrará en la barra del


título del cuadro de diálogo.

Archivo de Ayuda : Opcional. Si ha asignado un texto de ayuda


al cuadro de diálogo, aquí debe especificar el nombre del archivo
de ayuda donde está el texto.

Context: Opcional. Es el número que sirve para identificar el texto


al tema de ayuda correspondiente que estará contenido en el
archivo especificado en el parámetro Archivo de Ayuda.

Tabla para botones e iconos del cuadro MsgBox. (Tabla copiada del
archivo de ayuda de Microsoft Excel).

Constante Val Descripción


or
VbOKOnly 0 Muestra solamente el botón Aceptar.
VbOKCancel 1 Muestra los botones Aceptar y Cancelar.

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
VbAbortRetryI 2 Muestra los botones Anular, Reintentar e
gnore Ignorar.
VbYesNoCance 3 Muestra los botones Sí, No y Cancelar.
l
VbYesNo 4 Muestra los botones Sí y No.
VbRetryCancel 5 Muestra los botones Reintentar y Cancelar.
VbCritical 16 Muestra el icono de mensaje crítico.
VbQuestion 32 Muestra el icono de pregunta de advertencia.
VbExclamation 48 Muestra el icono de mensaje de advertencia.
VbInformation 64 Muestra el icono de mensaje de información.
VbDefaultButt 0 El primer botón es el predeterminado.
on1
VbDefaultButt 256 El segundo botón es el predeterminado.
on2
VbDefaultButt 512 El tercer botón es el predeterminado.
on3
VbDefaultButt 768 El cuarto botón es el predeterminado.
on4
VbApplication 0 Aplicación modal; el usuario debe responder al
Modal cuadro de mensajes antes de poder seguir
trabajando en la aplicación actual.
VbSystemMod 409 Sistema modal; se suspenden todas las
al 6 aplicaciones hasta que el usuario responda al
cuadro de mensajes.

El primer grupo de valores (0 a 5) describe el número y el tipo de los


botones mostrados en el cuadro de diálogo; el segundo grupo (16, 32,
48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512)
determina el botón predeterminado y el cuarto grupo (0, 4096)
determina la modalidad del cuadro de mensajes. Cuando se suman
números para obtener el valor final del argumento buttons, se utiliza
solamente un número de cada grupo.

Nota Estas constantes las especifica Visual Basic for Applications. Por
tanto, el nombre de las mismas puede utilizarse en cualquier lugar del
código en vez de sus valores reales.

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Los valores que puede devolver la función msgbox en función del botón
que pulse el usuario se muestran en la tabla siguiente.
Tabla de valores que puede devolver MsgBox. (Tabla copiada del archivo
de ayuda de Microsoft Visual Basic para aplicaciones).

Consta Val Descrip


nte or ción
VbOK 1 Aceptar
VbCanc 2 Cancelar
el
VbAbor 3 Anular
t
VbRetry 4 Reintent
ar
VbIgnor 5 Ignorar
e
VbYes 6 Sí
VbNo 7 No

Ejemplos de MsgBox.

Sub Tal()
.
.
' El cuadro Muestra los botones Si y No y un icono en forma de
interrogante. Cuando se pulsa
' un botón, el valor lo recoge la variable X. En este caso los
valores devueltos pueden ser 6 o 7
' que corresponden respectivamente a las constantes VbYes y
VbNo, observe la instrucción If de
'después.
X = MsgBox("Desea Continuar", vbYesNo + vbQuestion,
"Opción",,)

' Se ha pulsado sobre botón Si


If X = vbYes Then

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
.....
Else ' Se ha pulsado sobre botón No
.....
End If
.
.
End Sub

La Función InputBox.

Esta función muestra una ventana para que el usuario pueda teclear
datos. Cuando se pulsa sobre Aceptar, los datos entrados pasan a la
variable a la que se ha igualado la función. Vea la línea siguiente.

Texto = InputBox("Introduzca el texto", "Entrada de datos").

Si en la ventana que muestra InputBox pulsa sobre el botón Aceptar, los


datos tecleados se guardarán el la variable Texto.

Sintaxis de InputBox.

InputBox(Mensaje, Título, Valor por defecto, Posición horizontal,


Posición Vertical, Archivo ayuda, Número de contexto para la
ayuda).

Mensaje : Es el mensaje que se muestra en la ventana. Si desea


poner más de una línea ponga Chr(13) para cada nueva línea, vea
el ejemplo siguiente.

Título : Es el título para la ventana InputBox. Es un parámetro


opcional.

Valor por defecto: Es el valor que mostrará por defecto el cuadro


donde el usuario entra el valor. Parámetro opcional.

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia
Posición Horizontal: La posición X de la pantalla donde se mostrará
el cuadro, concretamente es la posición para la parte izquierda. Si
se omite el cuadro se presenta horizontalmente centrado a la
pantalla.
Posición Vertical: La posición Y de la pantalla donde se mostrará el
cuadro, concretamente es la posición para la parte superior. Si se
omite el cuadro se presenta verticalmente centrado a la pantalla.

Archivo Ayuda: Es el archivo que contiene la ayuda para el cuadro.


Parámetro opcional.

Número de contexto para la ayuda: Número asignado que


corresponde al identificador del archivo de ayuda, sirve para
localizar el texto que se debe mostrar. Si se especifica este
parámetro, debe especificarse obligatoriamente el parámetro
Archivo Ayuda.

Ejemplo 3

Sub Entrar_Valor

Dim Texto As String

' Chr(13) sirve para que el mensaje se muestre en dos Líneas


Texto = InputBox("Introducir un texto " & Chr(13) & "Para la
casilla A1", "Entrada de datos")
ActiveSheet.Range("A1").Value = Texto

End Sub

Teléfono: 3137435411
info@visiontecnologica.com
Bogotá - Colombia

También podría gustarte