tema1 macros

31
VISUAL BASIC PARA APLICACIONES (VBA) EN EXCEL Código 9679 Asignatura de libre opción recomendada para CC. Actuariales y Financieras Profesores Juan M. Pérez Salamero González Manuel Ventura Marco CURSO 2005-2006

Upload: nedzon-pinto-catalan

Post on 05-Jan-2016

71 views

Category:

Documents


3 download

DESCRIPTION

macros

TRANSCRIPT

Page 1: Tema1 Macros

VISUAL BASIC PARA APLICACIONES

(VBA) EN EXCEL

Código 9679 Asignatura de libre opción recomendada para CC. Actuariales y Financieras

Profesores

Juan M. Pérez Salamero González Manuel Ventura Marco CURSO 2005-2006

Page 2: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 1

TEMA 1.- Introducción: Herramientas Avanzadas de Excel. Macros. 1.2 Macros

1.2.1 Creación, ejecución y modificación básica de una macro.

1.2.2 Asignación de una macro a objetos para su ejecución rápida: 1.2.2.1 Botón de barra de herramientas. 1.2.2.2 Objeto gráfico. 1.2.2.3 Menú.

1.2.3 El contenido de una macro: Presentación del Editor de Visual Basic.

1.2.4 Necesidad de depuración de una macro.

1.2.4.1 Referencias absolutas y relativas en una macro. 1.2.4.2 Generación de código innecesario. 1.2.4.3 Otras causas.

1.2.5 Almacenamiento y firma de macros personales.

Page 3: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 2

La toma de decisiones en el mundo de la empresa conlleva el manejo de mucha información que conlleva tareas repetitivas periódicas con gran coste de tiempo y de recursos. El desarrollo de la informática y el diseño de aplicaciones (programas) para el manejo de datos de los que se extrae la información ha permitido acortar el tiempo para tomar decisiones, además de conferirle más fiabilidad reduciendo el número de errores debidos al gran número de operaciones a efectuar periódicamente para tratar la información. También ha permitido realizar tareas que eran inviables sin el uso de los ordenadores y los programas informáticos. Por ese motivo, tener unos conocimientos básicos de un lenguaje de programación permitirá diseñar nuestros propios programas para:

- Ahorrar de tiempo. - Reducir errores. - Ejecutar tareas no contempladas en la aplicación informática que empleemos para el

manejo de datos. Para el caso concreto de Excel, el lenguaje de programación es Visual Basic. La programación se realiza con el Editor de VB, al que se accede desde el menú Herramientas/Macro. Podemos distinguir tres formas de programar que están relacionadas con el nivel de conocimientos que el usuario tenga en la materia:

Page 4: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 3

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

usuario iniciarse con sencillez en la programación con VBA. Su funcionamiento es similar al de una grabadora de música: a partir del momento en el que pulsamos el botón de grabación, toda la secuencia de acciones e instrucciones que realiza el usuario en la hoja de cálculo, se almacenan bajo un nombre que posteriormente se podrá ejecutar cuantas veces se desee.

- Programar en código VB escribiendo las instrucciones directamente sobre el editor.

- Programar en código avanzado de VB. Esto supone utilizar las distintas herramientas

que proporciona VBA, ya sea la depuración, la ventana de inmediato, entre otras, acostumbrándose a emplear una nomenclatura estándar para la denominación de objetos y procedimientos, a dimensionar correctamente las variables para lograr una mayor eficiencia, sin olvidar la realización de un estudio y una planificación previos de la aplicación que se pretende crear.

En este curso se va a ver los dos primeros niveles de programación y se darán algunas indicaciones básicas para el nivel más avanzado. A continuación, se detallan las limitaciones del uso exclusivo de las macros para justificar la necesidad del uso de VBA.

Page 5: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 4

1.2.1 Creación, ejecución y modificación básica 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 utilización. Cabe seleccionar asimismo su ámbito de utilización mediante la opción Guardar macro en.

Método abreviado: Combinación de teclas que ejecuta la macro. Hay que tener precaución de no elegir una combinación ya asignada por Excel a sus comandos. Este libro: Sólo desde ese libro podremos ejecutar la macro

Page 6: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 5

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 pequeña ventana con un botón para detener la grabación. Mientras no pulsemos ese botón, Excel memorizará en una macro todas las acciones que se vayan ejecutando.

En esa misma ventana aparece otro botón que permite que la grabación 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 Método Abreviado CTRL+K que dé el siguiente formato al rango seleccionado:

- Moneda, con dos decimales. - Alineación horizontal general y vertical centrar. - Fuente o tipo de letra Arial, tamaño 10, cursiva. - Bordes de contorno. - Trama naranja pastel (color 40).

Page 7: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 6

Una vez finalizada la grabación, 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 botón ejecutar. Para ejecutar una macro habitualmente, además de las teclas de modo abreviado, existen maneras de con un solo clic ejecutarla sin necesidad de usar el menú Herramientas/Macro.

Page 8: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 7

1.2.2 Asignación de una macro a objetos para su ejecución rápida.

1.2.2.1 Botón de barra de herramientas.

Para crear una barra de herramientas personalizada desplegamos el menú Herramientas/Personalizar, seleccionamos la carpeta Barra de herramientas-Nueva:

Page 9: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 8

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 están organizados por categorías.

*

Para añadir 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.

Page 10: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 9

Dentro de la ventana Personalizar, pulsamos sobre la carpeta Comandos. En categorías seleccionamos Macros y arrastramos la herramienta genérica Personalizar botón hasta nuestra barra de herramientas. Pulsando el botón derecho del ratón aparece un menú contextual.

En este menú elegimos la opción Asignar macro. Seleccionamos la macro deseada de la lista que aparece y pulsamos Aceptar.

Page 11: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 10

Podemos cambiar el aspecto del botón 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 ratón sobre ellas. Cambiar imagen del botón: Podemos elegir una de las que nos aparecen predeterminadas. Modificar imagen: Podemos realizar modificaciones personalizadas: Eliminar: Elimina el botón de la barra de herramientas

Page 12: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 11

1.2.2.2 Asignar una macro a un objeto gráfico. Podemos asignar una macro a un objeto gráfico obtenido con la barra de dibujo. Esto nos permite colocar el objeto gráfico en el lugar de la hoja de cálculo que más nos interese. Para ello, hacemos visible la barra de dibujo con el menú Ver/Barra_de_Herramientas/Dibujo.

A continuación trazamos cualquier objeto, por ejemplo un rectángulo, pulsamos el botón derecho del ratón y nos aparece un menú contextual con la opción 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 través del objeto, el Seleccionador de objetos debe estar desactivado.

Page 13: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 12

1.2.2.3 Asignar una macro a un menú desplegable. También 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 menús desplegables. Con el botón de la derecha abrimos un menú contextual que nos permite cambiar el nombre del menú.

Page 14: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 13

A continuación seleccionamos la categoría 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 opción del menú y asignar a cada submenú una macro. Cuando abramos Excel en otra ocasión, podremos ver el nuevo menú y si las macros están grabadas en el Libro de macros personal podremos ejecutarlas desde cualquier hoja.

Page 15: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 14

1.2.3 El contenido de una macro: Presentación 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 después modificar, y se abrirá el Editor de Visual Basic con la ventana Módulo 1 seleccionada. Se trata de un módulo que es dónde el grabador coloca todas las macros. Si abre la hoja Ejemplo 2.1 y modifique la macro FormatoMoneda, puede ver que las líneas que comienzan con apóstrofos al principio de la macro son comentarios. El apóstrofe al inicio de la línea indica que el texto que le sigue es un comentario y no es una orden de Visual Basic. Conviene añadir comentarios cuando se utilice el Editor con el fin de facilitar la comprensión del funcionamiento de la Macro o Programa-Subrutina que estemos diseñando.

Page 16: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 15

Page 17: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 16

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 paréntesis que encerrarán, en otros casos, posibles argumentos de funciones y procedimientos diseñados en VBA. La última línea siempre es End Sub, que indica la finalización de la Macro. Las sentencias intermedias son las que dan órdenes y realizan el trabajo de la macro. Como regla general, para interpretar una instrucción en VBA, se debe leer la sentencia de derecha a izquierda, pero ya se profundizará en dicha interpretación en los temas siguientes. VBA es un lenguaje de programación orientado a objetos (libros, hojas, rangos, gráficos, ventanas, etc.), por lo que primero hay que establecer el objeto con el que trabajar y después se efectúa algo con él. En el próximo 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.

Page 18: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 17

1.2.4 Necesidad de depuración 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 diseñarla, se detectarán los problemas cuando se ejecute varias veces y se compruebe que no efectúa 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 comunicación con el usuario que desearía dar instrucciones durante la ejecución de una macro, es otro elemento que hace necesaria la depuración de una macro. Otro problema está en la imposibilidad de efectuar mediante Excel todos los cálculos o instrucciones deseados, y por tanto, la grabación 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 desempeñe correctamente todas las tareas. Otra circunstancia que aconseja la depuración es la generación de código innecesario por el grabador de Macros, lo que alarga la extensión complicando su lectura y por tanto, la comprensión de qué acciones efectúa una Macro. Veamos unos ejemplos de la necesidad de depurar las macros y mejorarlas.

Page 19: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 18

La necesidad de crear un proyecto complejo que realice varias acciones a la vez obligará a la depuración de una macro con muchas sentencias, lo que complica el trabajo, o a una opción más correcta, a descomponer el proyecto en pequeñas 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 botón de detener la grabación y otro para seleccionar si se desean referencias relativas o absolutas. Los efectos de ejecución 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. Grábela con referencias absolutas y con referencias relativas y ejecútelas seleccionando con el ratón distintas celdas de la hoja de cálculo.

Page 20: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 19

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

Page 21: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 20

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

Page 22: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 21

1.2.4.2 Generación de código innecesario. Cuando se graba una macro se genera código innecesario, lo que alarga la extensión 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 había 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 selección de Alineación (pestaña). 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

Page 23: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 22

.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

Page 24: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 23

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

Page 25: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 24

.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 depuración de una macro se han comentado antes y ahora se va a dar dos ejemplos de la rigidez en la comunicación con el usuario. Abrir-importar archivos: El primero es un ejemplo de importación de un fichero de datos. Al grabar la Macro se graba el nombre del fichero, si en próximas 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.

Page 26: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 25

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 línea de datos existente en la hoja. Ejecute dos veces la Macro para recuperar primero el fichero Datos y después Datos2 y compruebe su funcionamiento para apreciar la necesidad de depuración 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

Page 27: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 26

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

Utilización de mensajes Para mejorar la comunicación con el usuario se pueden introducir mensajes interactivos que permitan interactuar y hacer más dinámica la Macro. Se pueden añadir mensajes que den información de qué, cuándo o cómo se va a realizar una determinada acción. Incluso podremos decidir ejecutar o no parte de las instrucciones de la macro en función de la respuesta a alguno de estos mensajes (lo veremos más adelante). Para introducir de forma sencilla un mensaje se utiliza la función de Visual Basic MsgBox.

Page 28: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 27

(La sintaxis de esta función se verá con más detalle en el siguiente tema). Como ejemplo: Si añadimos al principio de una macro la línea MsgBox “¿Desea iniciar ya la macro?” Al ejecutar la macro aparece la ventana: Al pulsar el botón Aceptar, se cerrará la ventana y seguirán ejecutándose las instrucciones de la macro.

Page 29: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 28

1.2.5 Almacenamiento y firma de macros personales. Ya se ha comentado que el grabador de macros almacena macros en módulos, pero en cada sesión que se creen macros se guardarán en módulos diferentes. Hay que tenerlo presente para localizarlas y editarlas. Es muy fácil emplear los comandos de cortar, copiar y pegar en el Editor de Visual Basic para reagrupar todas las macros en un mismo módulo y después eliminar los módulos innecesarios y/o vacíos. Cada vez que se abre un libro de Excel con macros, si se tiene instalado como opción un nivel de seguridad, sale un mensaje de alerta, pues las macros podrían contener virus que dañaran los datos de nuestro ordenador. Para modificar las opciones de seguridad entre en Herramientas/Macro/Seguridad y adáptela a su gusto. Se puede evitar la aparición del mensaje para las Macros firmadas digitalmente. Es una manera de entender que la macro está elaborada por una persona o institución de confianza y que se puede abrir con tranquilidad. La certificación 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.

Page 30: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 29

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

Page 31: Tema1 Macros

Departamento de Economía Financiera. Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Pérez-Salamero Pág. 30

Para añadirla al proyecto entrando en el Editor de VBA en el menú de Herramientas/Firma digital. Después habrá que modificar las condiciones de seguridad de Excel, confiando en la firma que hemos creado.