Cómo firmar digitalmente las macros de Excel

Si alguna vez has estado trabajando con VBA en Excel y de repente te aparece esa advertencia amarilla de seguridad que indica que las macros están deshabilitadas, es bastante molesto. Mucha gente simplemente opta por no abrir el archivo, sobre todo si no confían en la fuente. El truco consiste en firmar digitalmente esas macros; es como darle a Excel una insignia de «confía en mí».Esto demuestra que la macro proviene realmente de una fuente confiable, por lo que la advertencia de seguridad no se activa cada vez. No estoy seguro de por qué funciona, pero parece ayudar a legitimar tu código y a evitar esa molesta advertencia. Y sí, si tus macros están en un token USB, el proceso es un poco más complejo porque firmas con una clave privada almacenada fuera del equipo. Esta guía explica los pasos para firmar tus macros VBA, ya sea que uses un certificado autofirmado o uno de una CA, para que Excel las reconozca como seguras.

Cómo firmar digitalmente macros de Excel

Al firmar tus macros, añades una firma cifrada especial al proyecto VBA. Es como sellar tu código con un sello digital. Esto confirma que nadie lo ha modificado desde que lo firmaste. Para ello, se utiliza un certificado de firma de código que tu sistema verifica con autoridades de confianza. Si omites este paso, Excel considera todas las macros como potencialmente peligrosas, por lo que aparece la advertencia. Pero si las firmas correctamente, tus macros serán de confianza y ya no recibirás esa molesta advertencia. Esta técnica resulta útil si compartes archivos con frecuencia o necesitas automatizar informes sin alarmar a nadie con avisos de seguridad.

A continuación se detallan los pasos para firmar tus macros de Excel, especialmente si utilizas un token de hardware USB que almacena tu clave privada. El proceso requiere algo más de trabajo manual, ya que primero debes asegurarte de que Windows reconozca tu certificado y, a continuación, firmarlo en el editor de Visual Basic de Excel.

  • Abre el archivo de Excel con las macros que deseas firmar. Guárdalo como .xlsm o .xlsb antes de hacer cualquier otra cosa. No te saltes este paso, o no funcionará.
  • Inserta tu token de hardware USB en tu PC. Este dispositivo contiene tu clave privada y es esencial para firmar con un certificado de hardware. Mantenlo conectado durante todo el proceso.
  • A continuación, compruebe que Windows reconoce el certificado del token USB. Abra Opciones de Internet (puede encontrarlas en el menú Inicio o en el Panel de control).Haga clic en la pestaña Contenido y luego en el botón Certificados. En la pestaña Personal, busque su certificado de firma de código. Si no aparece, es posible que deba cargarlo mediante el software de la CA o la utilidad de su token USB. A menudo, es necesario importar el certificado a Windows antes de que Excel pueda reconocerlo. Tenga paciencia, a veces puede resultar extraño.
  • Abra la pestaña Desarrollador en Excel. Si no está visible, haga clic con el botón derecho en el área de la cinta de opciones, seleccione Personalizar cinta de opciones, active la casilla de verificación de Desarrollador y haga clic en Aceptar.
  • Haz clic en el icono de Visual Basic o pulsa Alt + F11para abrir el editor de VBA.
  • Dentro del editor de VBA, vaya a Herramientas > Firma digital. Aparecerá una pequeña ventana que le indicará que el proyecto aún no está firmado.
  • En el cuadro de diálogo Firma digital, haga clic en el botón Elegir…. Se abrirá una lista de certificados disponibles; si todo está configurado correctamente, debería aparecer el certificado de su token USB. Seleccione su certificado de firma de código y haga clic en Aceptar.
  • De vuelta en el cuadro de diálogo principal, haga clic en Aceptar para confirmar la firma. Su proyecto VBA ahora tiene una firma de confianza adjunta.

Cierra el editor de VBA y vuelve a Excel. Guarda el archivo con Ctrl + S. Cuando se te solicite la contraseña del certificado (si la requiere), introdúcela. Tras guardar, la firma se incrustará. Para verificarlo, vuelve a abrir el archivo y comprueba si la advertencia de seguridad amarilla ha desaparecido o si la firma aparece ahora como de confianza. También puedes volver a abrir VBA y comprobar que tu certificado aparece en Herramientas > Firma digital.

Si desea que su firma tenga mayor vigencia, especialmente si el certificado puede caducar, puede agregar una marca de tiempo. En una configuración, tuve que ejecutar el siguiente comando desde el Símbolo del sistema o PowerShell como administrador:

signtool sign /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /a "path\to\yourfile.exe"

Esto vincula tu firma a un servidor de marcas de tiempo, por lo que, aunque tu certificado caduque, la firma seguirá siendo válida. Asegúrate de reemplazar «ruta\a\tuarchivo.exe» con la ruta real de tu archivo. Verás un mensaje que confirma que la operación se realizó correctamente, lo cual es una buena señal.

¿Cómo firmar digitalmente una macro en Excel?

La forma más sencilla es abrir el libro de trabajo habilitado para macros y, a continuación, pulsar Alt + F11para abrir el editor de VBA. En el menú, ve a Herramientas > Firma digital. Haz clic en Elegir…, selecciona tu certificado (autofirmado o emitido por una CA) y pulsa Aceptar. Guarda el libro de trabajo inmediatamente. Ahora, tu macro está firmada y cualquier cambio invalidará la firma; tenlo en cuenta si piensas editarla más adelante.

¿Cómo firmar digitalmente un libro de Excel completo?

Firmar todo el libro de trabajo es un poco diferente. Puedes insertar una línea de firma visible a través de Insertar > Texto > Línea de firma; esto muestra una línea para que alguien firme manualmente. Para una firma invisible, ve a Archivo > Información > Proteger libro de trabajo > Agregar una firma digital. Ambos métodos se basan en un certificado válido y muestran la autenticidad del documento. Recuerda que el proceso de firma real generalmente implica el mismo certificado que usas para firmar macros, y se realiza a través de las opciones Proteger libro de trabajo o Línea de firma.