lunes, 3 de junio de 2013

VBA: Habilitar macros de Excel automáticamente.

Hace bastante tiempo comenté en una entrada las diferentes opciones que nos ofrece Excel para controlar la Seguridad de nuestras macros (ver).
En la entrada de hoy veremos un par de maneras en las que podemos controlar la apertura de libros de Excel sin perder la Seguridad y sin que aparezca el molesto mensaje de Habilitar contenido:

VBA: Habilitar macros de Excel automáticamente.


Para comprobar el funcionamiento crearemos un Libro con una macro sencilla con el evento Open, que muestre un simple mensaje al abrir nuestro Libro de trabajo.
Por tanto accederemos al Editor de VBA (alt+F11) e insertaremos el siguiente código dentro de ThisWorkBook (serviría cualquier tipo de procedimiento):

Private Sub Workbook_Open()
MsgBox "... prueba de apertura..."
'resto de instrucciones...
End Sub


Normalmente al abrir el libro aparecería el mensaje de la imagen anterior: Advertencia de Seguridad; lo que vamos a explicar es cómo conseguir evitar dicho mensaje para que nuestra macro, de la que tenemos total seguridad y control, y por la que no corremos ningún riesgo, se ejecute o habilite directamente.

Una primera forma es generar una Ubicación de confianza, es decir, una carpeta de nuestro equipo, tal que cualquier libro Excel que abramos dentro de dicha carpeta habilitará las macros automáticamente, sin mensaje de seguiridad.
Para ello accederemos a la configuración de las Ubicaciones de confianza; es posible hacerlo desde varios lugares:
1. Ficha Programador > grupo Códigos > botón Seguridad de macros y en la ventana diálogo de Centro de confianza buscaremos en el menú de la izquierda el item Ubicaciones de confianza y dentro de él, el botón Agregar nueva ubicación:

VBA: Habilitar macros de Excel automáticamente.


2. Desde el menú archivo(o botón Office en Excel 2007) > botón 'Opciones de Excel' > Opción Centro de Confianza (menú a la izquierda) > botón 'Configuración del centro de confianza' > opción 'Ubicaciones de confianza' (menú a la izquierda) > botón 'Agregar nueva ubicación'
En ambos casos se abrirá la misma ventana desde donde podremos indicar la situación de nuestra carpeta. También podremos decidir si queremos que las subcarpetas contenidas formen parte de esa ubicación de confianza:

VBA: Habilitar macros de Excel automáticamente.


Tras Aceptar es fácil comprobar que al abrir nuestro Libro ya no realiza la pregunta de confirmación para habilitar las macros.
Remarcar nuevamente la importancia y la seguridad de saber que los ficheros contenidos en esas carpetas son seguras y fiables...


Un procedimiento diferente para habilitar nuestras macros de manera automática sería a través de los certificados digitales de Microsoft. Para este proceso presionaremos el botón de Inicio de Windows > Todos los programas > Microsoft Office > Herramientas de Micorsoft Office 2010 > Certificado digital para proyectos de VBA:

VBA: Habilitar macros de Excel automáticamente.


Esto abrirá una Ventana desde la cual podremos dar nombre a nuestro Certificado digital propio:

VBA: Habilitar macros de Excel automáticamente.


Ya tenemos nuestro Certificado, ahora toca acceder a Excel y añadirlo en nuestro Editor de VBA. Buscamos dentro del editor de VB el menú Herramientas > Firma digital:

VBA: Habilitar macros de Excel automáticamente.


Se abre una ventana dialogo 'Firma digital', donde pulsaremos el botón 'Elegir', desplegándose entonces el listado de certificados existentes... bastará clicar sobre el elegido y Aceptar:

VBA: Habilitar macros de Excel automáticamente.


Listo, nuestros proyectos de VBA se abrirán de manera automática. Pero ojo, por que de esta manera sólo se podrá abrir el Libro desde nuestro equipo (donde exista nuestro certificado personal).

Mi recomendación es emplear el primero de los métodos con Ubicaciones de confianza, ya que es mucho más controlable qué vamos a permitir abrir y sobre qué nos pedirá confirmación.

2 comentarios: