100% encontró este documento útil (1 voto)
138 vistas

Tema1 Macros

Este documento presenta una introducción al uso de Visual Basic para Aplicaciones (VBA) en Excel. Explica que VBA permite automatizar tareas repetitivas para ahorrar tiempo y reducir errores. Describe tres niveles de programación en VBA, desde usar la grabación de macros hasta programación avanzada. También explica cómo asignar macros a botones, objetos gráficos y menús para ejecutarlas fácilmente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
138 vistas

Tema1 Macros

Este documento presenta una introducción al uso de Visual Basic para Aplicaciones (VBA) en Excel. Explica que VBA permite automatizar tareas repetitivas para ahorrar tiempo y reducir errores. Describe tres niveles de programación en VBA, desde usar la grabación de macros hasta programación avanzada. También explica cómo asignar macros a botones, objetos gráficos y menús para ejecutarlas fácilmente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

VISUAL BASIC PARA APLICACIONES

(VBA) EN EXCEL
Cdigo 9679
Asignatura de libre opcin recomendada para CC. Actuariales y Financieras
Profesores
Juan M. Prez Salamero Gonzlez
Manuel Ventura Marco
CURSO 2005-2006

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

TEMA 1.- Introduccin: Herramientas Avanzadas de Excel. Macros.


1.2

Macros

1.2.1 Creacin, ejecucin y modificacin bsica de una macro.


1.2.2 Asignacin de una macro a objetos para su ejecucin rpida:
1.2.2.1 Botn de barra de herramientas.
1.2.2.2 Objeto grfico.
1.2.2.3 Men.
1.2.3 El contenido de una macro: Presentacin del Editor de Visual Basic.
1.2.4 Necesidad de depuracin de una macro.
1.2.4.1 Referencias absolutas y relativas en una macro.
1.2.4.2 Generacin de cdigo innecesario.
1.2.4.3 Otras causas.
1.2.5 Almacenamiento y firma de macros personales.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 1

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

La toma de decisiones en el mundo de la empresa conlleva el manejo de mucha informacin


que conlleva tareas repetitivas peridicas con gran coste de tiempo y de recursos. El
desarrollo de la informtica y el diseo de aplicaciones (programas) para el manejo de
datos de los que se extrae la informacin ha permitido acortar el tiempo para tomar
decisiones, adems de conferirle ms fiabilidad reduciendo el nmero de errores debidos
al gran nmero de operaciones a efectuar peridicamente para tratar la informacin.
Tambin ha permitido realizar tareas que eran inviables sin el uso de los ordenadores y los
programas informticos. Por ese motivo, tener unos conocimientos bsicos de un lenguaje
de programacin permitir disear nuestros propios programas para:
- Ahorrar de tiempo.
- Reducir errores.
- Ejecutar tareas no contempladas en la aplicacin informtica que empleemos para el
manejo de datos.
Para el caso concreto de Excel, el lenguaje de programacin es Visual Basic. La
programacin se realiza con el Editor de VB, al que se accede desde el men
Herramientas/Macro.
Podemos distinguir tres formas de programar que estn relacionadas con el nivel de
conocimientos que el usuario tenga en la materia:
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 2

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

- Utilizando la grabadora de macros. La grabadora es una herramienta que permite al


usuario iniciarse con sencillez en la programacin con VBA. Su funcionamiento es
similar al de una grabadora de msica: a partir del momento en el que pulsamos el
botn de grabacin, toda la secuencia de acciones e instrucciones que realiza el
usuario en la hoja de clculo, se almacenan bajo un nombre que posteriormente se
podr ejecutar cuantas veces se desee.
- Programar en cdigo VB escribiendo las instrucciones directamente sobre el editor.
- Programar en cdigo avanzado de VB. Esto supone utilizar las distintas herramientas
que proporciona VBA, ya sea la depuracin, la ventana de inmediato, entre otras,
acostumbrndose a emplear una nomenclatura estndar para la denominacin de
objetos y procedimientos, a dimensionar correctamente las variables para lograr una
mayor eficiencia, sin olvidar la realizacin de un estudio y una planificacin previos de
la aplicacin que se pretende crear.
En este curso se va a ver los dos primeros niveles de programacin y se darn algunas
indicaciones bsicas para el nivel ms avanzado. A continuacin, se detallan las limitaciones
del uso exclusivo de las macros para justificar la necesidad del uso de VBA.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 3

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.1

Creacin, ejecucin y modificacin bsica de una macro

Una vez detectada la necesidad de automatizar una tarea repetitiva en nuestro trabajo, se
plantea la conveniencia de crear una macro que ahorre tiempo y errores. Podemos acceder
a la grabadora de macros desde el men Herramientas/Macro/Grabar nueva macro.
Asignando un nombre a la macro la podremos identificar para su posterior utilizacin. Cabe
seleccionar asimismo su mbito de utilizacin mediante la opcin Guardar macro en.

Mtodo abreviado: Combinacin de teclas que ejecuta la macro. Hay que tener
precaucin de no elegir una combinacin ya asignada por Excel a sus comandos.
Este libro: Slo desde ese libro podremos ejecutar la macro
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 4

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Libro de macros personal: Podremos ejecutar la macro desde cualquier libro. La macro
se guarda en un libro personal de macros que funciona como cualquier otro libro, salvo
que est oculto. El nombre de la macro ser PERSONAL.XLS!Macro1.
Al pulsar aceptar aparece una pequea ventana con un botn para detener la
grabacin. Mientras no pulsemos ese botn, Excel memorizar en una macro
todas las acciones que se vayan ejecutando.
En esa misma ventana aparece otro botn que permite que la grabacin de los movimientos
por las celdas sea relativa en lugar de absoluta, lo que tiene su importancia.
Ejemplo 2.1
Cree una macro con nombre FormatoMoneda y tecla de Mtodo Abreviado CTRL+K que d
el siguiente formato al rango seleccionado:
- Moneda, con dos decimales.
- Alineacin horizontal general y vertical centrar.
- Fuente o tipo de letra Arial, tamao 10, cursiva.
- Bordes de contorno.
- Trama naranja pastel (color 40).
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 5

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Una vez finalizada la grabacin, para ejecutar la macro seguimos los siguientes pasos: men
Herramientas/Macro/Macros. Aparece una pantalla con las siguientes opciones:

Se selecciona la macro a ejecutar y se hace clic en el botn ejecutar.


Para ejecutar una macro habitualmente, adems de las teclas de modo abreviado, existen
maneras de con un solo clic ejecutarla sin necesidad de usar el men Herramientas/Macro.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 6

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.2
1.2.2.1

Asignacin de una macro a objetos para su ejecucin rpida.


Botn de barra de herramientas.

Para crear una barra de herramientas personalizada desplegamos el men


Herramientas/Personalizar, seleccionamos la carpeta Barra de herramientas-Nueva:

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 7

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

En esta barra herramientas (al igual que en cualquiera de las definidas por Excel) podemos
agregar las herramientas situadas en el men Herramientas/Personalizar carpeta
Comandos. Estos comandos estn organizados por categoras.

Para aadir un comando basta arrastrarlo hasta la barra de herramientas donde lo


deseemos colocar. En caso de que deje de interesarnos, realizamos el proceso al contrario,
arrastramos las herramienta hasta la ventana Personalizar.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 8

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Dentro de la ventana Personalizar, pulsamos sobre la carpeta Comandos. En categoras


seleccionamos Macros y arrastramos la herramienta genrica Personalizar botn hasta
nuestra barra de herramientas. Pulsando el botn derecho del ratn aparece un men
contextual.

En este men elegimos la opcin


Asignar macro. Seleccionamos la
macro deseada de la lista que
aparece y pulsamos Aceptar.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 9

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Podemos cambiar el aspecto del botn a partir del ese mismo men contextual. Para que
este men aparezca tiene que estar abierta la ventana Herramientas/Personalizar.
Podemos realizar los cambios siguientes:
Nombre: Es la leyenda que aparece en las herramientas al pasar el ratn sobre ellas.
Cambiar imagen del botn: Podemos elegir una de las que nos aparecen predeterminadas.
Modificar imagen: Podemos realizar modificaciones personalizadas:

Eliminar: Elimina el botn de la barra de herramientas

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 10

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.2.2
Asignar una macro a un objeto grfico.
Podemos asignar una macro a un objeto grfico obtenido con la barra de dibujo. Esto nos
permite colocar el objeto grfico en el lugar de la hoja de clculo que ms nos interese.
Para ello, hacemos visible la barra de dibujo con el men
Ver/Barra_de_Herramientas/Dibujo.
A continuacin trazamos cualquier
objeto, por ejemplo un rectngulo,
pulsamos el botn derecho del ratn y
nos aparece un men contextual con la
opcin de Asignar macro.
Con la herramienta Seleccionador de
objetos, representada por una flecha,
podemos modificar el aspecto del objeto.
Para poder ejecutar la macro a travs
del objeto, el Seleccionador de objetos
debe estar desactivado.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 11

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.2.3

Asignar una macro a un men desplegable.

Tambin podemos crear nuestro propio men desplegable e incluir en l las macros que
vayamos creando. Para ello accedemos al men Herramientas/Personalizar/Comandos.

Elegimos Nuevo men y lo arrastramos hasta la barra de mens desplegables. Con el botn
de la derecha abrimos un men contextual que nos permite cambiar el nombre del men.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 12

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

A continuacin seleccionamos la categora Macros y arrastramos el comando Personalizar


elemento de men hasta la ventana que aparece por debajo del nuevo men creado.
Con el men contextual podemos cambiar el nombre de cada opcin del men y asignar a
cada submen una macro.
Cuando abramos Excel en otra ocasin, podremos ver el nuevo men y si las macros estn
grabadas en el Libro de macros personal podremos ejecutarlas desde cualquier hoja.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 13

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.3

El contenido de una macro: Presentacin del Editor de Visual Basic.

Cuando se graba una macro, se encuentra oculta en el libro de trabajo o en el libro


personal.xls, pero se necesita abrir el Editor de Visual Basic para poder verla. En la barra
de herramientas de Visual Basic pulse ejecutar y despus modificar, y se abrir el Editor
de Visual Basic con la ventana Mdulo 1 seleccionada. Se trata de un mdulo que es dnde
el grabador coloca todas las macros.
Si abre la hoja Ejemplo 2.1 y modifique la macro FormatoMoneda, puede ver que las lneas
que comienzan con apstrofos al principio de la macro son comentarios. El apstrofe al
inicio de la lnea indica que el texto que le sigue es un comentario y no es una orden de
Visual Basic. Conviene aadir comentarios cuando se utilice el Editor con el fin de facilitar
la comprensin del funcionamiento de la Macro o Programa-Subrutina que estemos
diseando.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 14

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 15

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

La Macro est escrita en VBA y cumple las normas de Visual Basic. Comienza con la palabra
Sub , abreviatura de Subrutina, seguida del nombre de la Macro, FormatoMoneda y dos
parntesis que encerrarn, en otros casos, posibles argumentos de funciones y
procedimientos diseados en VBA. La ltima lnea siempre es End Sub, que indica la
finalizacin de la Macro.
Las sentencias intermedias son las que dan rdenes y realizan el trabajo de la macro. Como
regla general, para interpretar una instruccin en VBA, se debe leer la sentencia de
derecha a izquierda, pero ya se profundizar en dicha interpretacin en los temas
siguientes. VBA es un lenguaje de programacin orientado a objetos (libros, hojas, rangos,
grficos, ventanas, etc.), por lo que primero hay que establecer el objeto con el que
trabajar y despus se efecta algo con l.
En el prximo tema se explicar con mayor detalle los elementos del Editor de Visual Basic.
Ahora, con ayuda de algunos ejemplos se va a analizar la necesidad de depurar una Macro
generada por el grabador de Macros dadas sus limitaciones.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 16

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.4
Necesidad de depuracin de una macro.
Hay varios motivos por los que una Macro debe ser depurada. Si no se ha hecho un estudio
previo de lo que se requiere de la Macro a la hora de disearla, se detectarn los
problemas cuando se ejecute varias veces y se compruebe que no efecta correctamente
las tareas para que se deseaban inicialmente.
Uno de los problemas habituales que ocasionan el mal funcionamiento es el uso de
referencias absolutas en lugar de relativas, o al contrario.
La rigidez en el manejo de datos externos, por ejemplo, o en la comunicacin con el usuario
que deseara dar instrucciones durante la ejecucin de una macro, es otro elemento que
hace necesaria la depuracin de una macro.
Otro problema est en la imposibilidad de efectuar mediante Excel todos los clculos o
instrucciones deseados, y por tanto, la grabacin de una macro no va a proporcionar todo lo
que se quiere ejecutar. Programando con VBA se puede completar lo efectuado con el
grabador de macros y obtener finalmente un programa que desempee correctamente
todas las tareas.
Otra circunstancia que aconseja la depuracin es la generacin de cdigo innecesario por el
grabador de Macros, lo que alarga la extensin complicando su lectura y por tanto, la
comprensin de qu acciones efecta una Macro. Veamos unos ejemplos de la necesidad de
depurar las macros y mejorarlas.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 17

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

La necesidad de crear un proyecto complejo que realice varias acciones a la vez obligar a
la depuracin de una macro con muchas sentencias, lo que complica el trabajo, o a una
opcin ms correcta, a descomponer el proyecto en pequeas macros que tras depurarlas
individualmente, puedan unirse en una nica macro.

1.2.4.1

Referencias absolutas y relativas en una macro.

Cuando se graba una macro por primera vez, aparece una barra con el botn de detener la
grabacin y otro para seleccionar si se desean referencias relativas o absolutas. Los
efectos de ejecucin de una macro con unas referencias equivocadas son un resultado
incorrecto.
Ejemplo 2.2
Grabe dos macros, BajarAbs y BajarRel que seleccionen la celda inferior, copie el
contenido de la celda superior y la sombree de amarillo. Grbela con referencias absolutas
y con referencias relativas y ejectelas seleccionando con el ratn distintas celdas de la
hoja de clculo.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 18

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Sub BajarAbs()
'
' BajarAbs Macro
' Macro grabada el 14/10/2005 por Juanma
'
'
ActiveCell.Select
Range("A2").Select
With Selection.Interior
.ColorIndex = 27
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A1").Select
Selection.Copy
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Sub BajarRel()
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 19

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

'
' BajarRel Macro
' Macro grabada el 14/10/2005 por Juanma
'
'
ActiveCell.Offset(1, 0).Range("A1").Select
Application.CutCopyMode = False
With Selection.Interior
.ColorIndex = 27
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 20

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.4.2
Generacin de cdigo innecesario.
Cuando se graba una macro se genera cdigo innecesario, lo que alarga la extensin del
programa, por lo que conviene depurarlo eliminando las sentencias innecesarias. Un ejemplo
de las mismas las apreciamos en el Ejemplo 2.1 en las opciones de formato por defecto que
el grabador considera, pero que el usuario no haba marcado. Se pueden eliminar desde el
editor sin que se resienta el buen funcionamiento de la Macro. Por ejemplo, se pueden
eliminar las sentencias correspondientes al Formato que da el valor de Falso 0 a distintas
propiedades de la seleccin de Alineacin (pestaa).
Sub FormatoMoneda()
'
' FormatoMoneda Macro
' Macro grabada el 14/10/2005 por Juanma
'
' Acceso directo: CTRL+k
'
Selection.NumberFormat = "#,##0.00 $"
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 21

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.Name = "Arial"
.FontStyle = "Cursiva"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 22

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 23

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

.ColorIndex = xlAutomatic
End With
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
1.2.4.3

Otras causas.

Otras causas que aconsejan la depuracin de una macro se han comentado antes y ahora
se va a dar dos ejemplos de la rigidez en la comunicacin con el usuario.
Abrir-importar archivos: El primero es un ejemplo de importacin de un fichero de
datos. Al grabar la Macro se graba el nombre del fichero, si en prximas ocasiones que
se desee ejecutar la Macro el fichero a recuperar tiene otro nombre, la macro grabada
no servir. Hay que depurarla incorporando desde el Editor de VBA la posibilidad de que
el usuario le indique qu fichero debe Abrir.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 24

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Ejemplo 2.3
Cree una Macro con nombre ImportarDatos que abra un fichero de texto de datos,
Datos, y lo pegue al final de la ltima lnea de datos existente en la hoja. Ejecute dos
veces la Macro para recuperar primero el fichero Datos y despus Datos2 y compruebe
su funcionamiento para apreciar la necesidad de depuracin de la macro. No habr
manera de introducirle el nuevo fichero si no es mediante el uso del Editor de VB.
Sub ImportarDatos()
'
' ImportarDatos Macro
' Macro grabada el 14/10/2005 por Juanma
'
'
Workbooks.OpenText Filename:= _
"C:\Juanma\Facultad\Docencia\VisualBasic\20052006\Excel\Aplicaciones
VBAExcel\Tema1\datos.txt" _
, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
Selection.CurrentRegion.Select
Selection.Copy
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 25

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Windows("Ejemplo2_3.xls").Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Windows("datos.txt").Activate
Application.CutCopyMode = False
ActiveWindow.Close
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Utilizacin de mensajes
Para mejorar la comunicacin con el usuario se pueden introducir mensajes interactivos que
permitan interactuar y hacer ms dinmica la Macro. Se pueden aadir mensajes que den
informacin de qu, cundo o cmo se va a realizar una determinada accin.
Incluso podremos decidir ejecutar o no parte de las instrucciones de la macro en funcin
de la respuesta a alguno de estos mensajes (lo veremos ms adelante).
Para introducir de forma sencilla un mensaje se utiliza la funcin de Visual Basic MsgBox.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 26

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

(La sintaxis de esta funcin se ver con ms detalle en el siguiente tema). Como ejemplo: Si
aadimos al principio de una macro la lnea
MsgBox Desea iniciar ya la macro?
Al ejecutar la macro aparece la ventana:
Al pulsar el botn Aceptar, se cerrar la ventana y seguirn
ejecutndose las instrucciones de la macro.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 27

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.2.5

Almacenamiento y firma de macros personales.

Ya se ha comentado que el grabador de macros almacena macros en mdulos, pero en cada


sesin que se creen macros se guardarn en mdulos diferentes. Hay que tenerlo presente
para localizarlas y editarlas. Es muy fcil emplear los comandos de cortar, copiar y pegar
en el Editor de Visual Basic para reagrupar todas las macros en un mismo mdulo y despus
eliminar los mdulos innecesarios y/o vacos.
Cada vez que se abre un libro de Excel con macros, si se tiene instalado como opcin un
nivel de seguridad, sale un mensaje de alerta, pues las macros podran contener virus que
daaran los datos de nuestro ordenador. Para modificar las opciones de seguridad entre en
Herramientas/Macro/Seguridad y adptela a su gusto.
Se puede evitar la aparicin del mensaje para las Macros firmadas digitalmente. Es una
manera de entender que la macro est elaborada por una persona o institucin de confianza
y que se puede abrir con tranquilidad. La certificacin o firma personal de las macros no es
muy segura, pues no est autentificada por las autoridades habilitadas para otorgar
certificaciones, pero para un entorno particular pueden servir.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 28

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Para firmar Macros personales hay que aadir una firma al proyecto que previamente se
haya creado ejecutando el programa selfcert que se encuentra en la carpeta de Office,
Simples (si no habra que buscarlo), preguntar el nombre y crear la firma personal.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 29

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Para aadirla al proyecto entrando en el Editor de VBA en el men de Herramientas/Firma


digital. Despus habr que modificar las condiciones de seguridad de Excel, confiando en la
firma que hemos creado.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 30

También podría gustarte