¿Cómo guardar y usar sus macros de VBA en todos los libros de Excel?
Existen muchas situaciones en las que podría necesitar utilizar la misma macro de VBA repetidamente en distintos libros de Excel para tareas como automatizar cálculos repetitivos, dar formato a datos o crear funciones personalizadas, por ejemplo, convertir números en palabras. Un problema habitual es que, de forma predeterminada, las macros se almacenan únicamente en el libro donde se crean, lo que impide acceder a ellas o reutilizarlas fácilmente en documentos nuevos. Sin embargo, Excel ofrece varios métodos flexibles para hacer que una macro de VBA esté disponible globalmente, eliminando la necesidad de volver a copiar el código cada vez que comience un nuevo libro de trabajo. Este tutorial proporciona instrucciones completas sobre distintos enfoques para garantizar que sus macros de VBA sean fácilmente accesibles en todos los libros, mejorando así su productividad y flujo de trabajo.

Guarde y utilice el código VBA en todos los libros
Método del libro de macros personales
Por ejemplo, imagine que quiere convertir números en sus equivalentes en palabras en inglés mediante un código VBA personalizado y asegurarse de que esta función esté siempre disponible, sin importar el libro en el que trabaje. Con el enfoque adecuado, puede guardar sus módulos VBA para reutilizarlos siempre que los necesite en Excel. Esto resulta especialmente útil para funciones personalizadas o automatizaciones que desee tener a mano en todo momento, sin tener que duplicar el código en varios archivos.
Para ello, puede empaquetar su código VBA como un complemento personalizado de Excel. Al activarlo en Excel, este complemento pondrá a disposición su funcionalidad personalizada como una función globalmente accesible.
Siga estos pasos:
1. Pulse Alt + F11 en Excel para abrir la ventana «Microsoft Visual Basic para Aplicaciones».
2. En el editor de VBA, haga clic en Insertar > Módulo y pegue la siguiente macro en la ventana del módulo recién creado.
Código VBA: Convertir Convertir a palabras
Function NumberstoWords(ByVal MyNumber)
'Update by ExtendofficeDim xStr As StringDim xFNum As IntegerDim xStrPointDim xStrNumberDim xPoint As StringDim xNumber As StringDim xP() As VariantDim xDPDim xCnt As IntegerDim xResult, xT As StringDim xLen As IntegerOn Error Resume NextxP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP >0 ThenxPoint = " point "
xStr = Mid(xNumber, xDP +1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum =1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum,1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNumxNumber = Trim(Left(xNumber, xDP -1))
End IfxCnt =0xResult = ""
xT = ""
xLen =0xLen = Int(Len(Str(xNumber)) /3)
If (Len(Str(xNumber)) Mod3) =0 Then xLen = xLen -1Do While xNumber <> ""
If xLen = xCnt ThenxT = GetHundredsDigits(Right(xNumber,3), False)
ElseIf xCnt =0 ThenxT = GetHundredsDigits(Right(xNumber,3), True)
ElsexT = GetHundredsDigits(Right(xNumber,3), False)
End IfEnd IfIf xT <> "" ThenxResult = xT & xP(xCnt) & xResultEnd IfIf Len(xNumber) >3 ThenxNumber = Left(xNumber, Len(xNumber) -3)
ElsexNumber = ""
End IfxCnt = xCnt +1LoopxResult = xResult & xPointNumberstoWords = xResultEnd FunctionFunction GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As StringDim xStrNum As StringDim xStr As StringDim xI As IntegerDim xBB As BooleanxStrNum = xHDgtxRStr = ""
On Error Resume NextxBB = TrueIf Val(xStrNum) =0 Then Exit FunctionxStrNum = Right("000" & xStrNum,3)
xStr = Mid(xStrNum,1,1)
If xStr <> "0" ThenxRStr = GetDigits(Mid(xStrNum,1,1)) & "Hundred "
ElseIf xB ThenxRStr = "and "
xBB = FalseElsexRStr = " "
xBB = FalseEnd IfEnd IfIf Mid(xStrNum,2,2) <> "00" ThenxRStr = xRStr & GetTenDigits(Mid(xStrNum,2,2), xBB)
End IfGetHundredsDigits = xRStrEnd FunctionFunction GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As StringDim xI As IntegerDim xArr_1() As VariantDim xArr_2() As VariantDim xT As BooleanxArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = TrueOn Error Resume NextIf Val(Left(xTDgt,1)) =1 ThenxI = Val(Right(xTDgt,1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
ElsexI = Val(Left(xTDgt,1))
If Val(Left(xTDgt,1)) >1 ThenIf xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt,1)))
xT = FalseEnd IfIf xStr = "" ThenIf xB ThenxStr = "and "
End IfEnd IfIf Right(xTDgt,1) <> "0" ThenxStr = xStr & GetDigits(Right(xTDgt,1))
End IfEnd IfGetTenDigits = xStrEnd FunctionFunction GetDigits(xDgt)
Dim xStr As StringDim xArr_1() As VariantxArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume NextxStr = xArr_1(Val(xDgt))
GetDigits = xStrEnd Function 3. Ahora, haga clic en el icono «Guardar» situado en la esquina superior izquierda de la ventana o simplemente pulse Ctrl + S para abrir el cuadro de diálogo «Guardar como».
4. En la ventana «Guardar como», introduzca el nombre que desee en el campo «Nombre de archivo». En el menú desplegable «Especificar formato de guardado», asegúrese de seleccionar Complemento de Excel (*.xlam).
5. Haga clic en el botón «Guardar» para almacenar su libro como un archivo de complemento de Excel. Así creará un complemento reutilizable que podrá activar en cualquier momento y en cualquier libro.
6. Una vez guardado, vuelva a Excel y cierre el libro que acaba de convertir en un complemento.
7. Abra un libro nuevo o existente en el que quiera usar su macro e introduzca la fórmula personalizada en la celda correspondiente (por ejemplo, en B2):
=NumberstoWords(A2) 
Vaya a la pestaña Programador y haga clic en el botón Complementos de Excel del grupo Complementos.
9. En el cuadro de diálogo Complementos que aparece, seleccione Examinar.
10. Localice y seleccione el archivo del complemento que guardó anteriormente y, a continuación, haga clic en Aceptar.
11. Su complemento personalizado, como «Complemento para convertir números en palabras», ya debería aparecer en la lista de complementos. Asegúrese de que esté marcado y haga clic en Aceptar para activarlo.
12. Ahora, introduzca de nuevo la función personalizada en la celda de destino (por ejemplo, B2) y pulse Intro. Verá que la fórmula devuelve las palabras en inglés correctas para el número.
=NumberstoWords(A2) 13. Para aplicar rápidamente la fórmula de conversión a varios números, arrastre el controlador de autorrelleno de la celda hacia abajo y copie la función en otras celdas.

Consejos y notas:
- Al guardar la macro como complemento, podrá usar las mismas funciones personalizadas, código o automatizaciones en todos sus libros, ahorrando tiempo y garantizando coherencia.
- Si Excel está cerrado o el complemento se desactiva posteriormente, sus funciones pueden mostrar temporalmente «#¿NOMBRE?» hasta que el complemento se vuelva a cargar. Para evitar confusiones, asegúrese de mantenerlo siempre activado en el Administrador de complementos cuando lo necesite.
- Algunos usuarios no ven la pestaña Programador activada por defecto. Para habilitarla, haz clic con el botón derecho en la Cinta de opciones, selecciona «Personalizar la Cinta de opciones» y marca la casilla «Programador».
- Es una buena práctica guardar los complementos en una carpeta permanente para evitar referencias perdidas si los archivos se mueven o renombran.
Si prefiere ejecutar el código manualmente, también es posible y a veces útil al depurar o para usos puntuales:
- Puede asignar una macro a la Barra de acceso rápido para ejecutarla con un solo clic en cualquier libro abierto. Para hacerlo, haga clic con el botón derecho en la Barra de acceso rápido, seleccione «Personalizar la Barra de acceso rápido» y añada su macro.

- También puede pulsar Alt + F11 para abrir el editor de VBA, seleccionar manualmente su macro y pulsar F5 para ejecutar el código según sea necesario.
Ventajas: Esta solución te permite crear y compartir funcionalidades de macro potentes y reutilizables que siempre funcionan mientras el complemento esté activado.
Inconvenientes: Los usuarios deben recordar cargar el complemento y, si comparten libros, también tienen que compartir el archivo del complemento junto con los detalles de las funciones. Además, los complementos no son compatibles con Excel Online.
Otra forma muy práctica de garantizar que sus macros favoritas o más utilizadas estén siempre disponibles en cada sesión de Excel, independientemente del libro que tenga abierto, es usar el libro de macros personales (PERSONAL.XLSB). Se trata de un archivo especial y oculto de Excel que se carga automáticamente al iniciar la aplicación, lo que permite acceder a cualquier macro almacenada en él desde todos los libros abiertos.
Escenarios de aplicación: Ideal para automatizaciones personales, scripts de formato rutinarios o funciones de utilidad que no necesite compartir como complementos formales de Excel. Las macros en PERSONAL.XLSB están disponibles en su equipo independientemente del archivo que tenga abierto.
Ventajas: Las macros están disponibles globalmente para tu perfil local de Excel y no requieren la instalación de complementos ni archivos adicionales.
Inconvenientes: Las macros almacenadas de esta forma solo se pueden usar en el equipo y la cuenta donde esté el archivo PERSONAL.XLSB. Compartirlas con otras personas exige exportar e importar los módulos manualmente.
- Para utilizar este método, primero debe grabar o crear una macro y asegurarse de que se guarde en el libro de macros personales.
Siga estos pasos:
- Abra Excel. En la pestaña Vista, haga clic en Macros y luego en Grabar macro.
- En el cuadro de diálogo, bajo «Guardar macro en», seleccione Libro de macros personales. A continuación, complete la grabación (puede detenerla inmediatamente si no es necesario).
- Pulse Alt + F11 para acceder al editor de VBA, donde encontrará un proyecto denominado PERSONAL.XLSB. Allí, inserte un nuevo módulo o pegue el código de la macro deseada.
- Guarde los cambios. Excel crea y mantiene automáticamente el libro PERSONAL.XLSB en su carpeta de inicio.
- Las macros en PERSONAL.XLSB se pueden ejecutar desde el cuadro de diálogo Macros (Alt + F8), asignarlas a la Cinta de opciones o a botones de la barra de herramientas, o llamarlas desde VBA.
Resolución de problemas y mantenimiento: Si las macros del archivo PERSONAL.XLSB no están disponibles, compruebe si Excel se ha iniciado en modo seguro o si la configuración de seguridad de macros está establecida en «Deshabilitar todas las macros». Además, el archivo PERSONAL.XLSB está oculto de forma predeterminada; si lo cierra accidentalmente sin guardar o lo elimina, es posible que tenga que volver a grabar una macro para regenerarlo.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSBUn código VBA para enumerar todos los complementos en Excel
En Excel, puedes agregar o insertar complementos para trabajar de forma más eficiente con tus datos. Sabemos que es posible verlos todos desde la ventana Opciones, pero ¿existe alguna manera de listarlos directamente en una hoja? En este tutorial te ofrecemos un código VBA que enumera todos los complementos en Excel.
¿Cómo ejecutar una macro VBA al abrir o cerrar un libro?
En este artículo te explicamos cómo ejecutar código VBA automáticamente cada vez que abras o cierres un libro.
¿Cómo proteger o bloquear el código VBA en Excel?
Al igual que puede usar una contraseña para proteger libros y hojas de cálculo, también puede establecer una contraseña para proteger las macros en Excel.
¿Cómo usar un retardo de tiempo tras ejecutar una macro VBA en Excel?
En algunos casos, es posible que necesites introducir un retardo temporizado antes de que una macro VBA en Excel surta efecto. Por ejemplo, al hacer clic para ejecutar una macro específica, esta se activará automáticamente tras 10 segundos. Este artículo te muestra cómo lograrlo.
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos
