¿Cómo guardar y usar sus macros de VBA en todos los libros de trabajo en Excel?
Hay muchas situaciones en las que puede necesitar usar la misma macro de VBA repetidamente en diferentes libros de trabajo de Excel para tareas como automatizar cálculos repetitivos, dar formato a datos o funciones personalizadas como convertir números en palabras. Un desafío común es que, por defecto, las macros se almacenan solo dentro del libro de trabajo donde se crearon, lo que significa que no puedes acceder o reutilizarlas fácilmente en nuevos documentos. Sin embargo, Excel ofrece varios métodos flexibles para hacer que una macro de VBA esté disponible globalmente, eliminando la necesidad de copiar el código cada vez que comienzas un nuevo libro de trabajo. Este tutorial proporciona instrucciones completas para varios enfoques para asegurar que tus macros de VBA sean fácilmente accesibles en todos los libros de trabajo, mejorando tu productividad y flujo de trabajo.
Guardar y usar el código de VBA en todos los libros de trabajo
Método del Libro de Macros Personal
Por ejemplo, supongamos que deseas poder convertir números a sus equivalentes en palabras en inglés usando un código VBA personalizado y asegurarte de que esta función siempre esté disponible sin importar en qué libro de trabajo estés trabajando. Con el enfoque adecuado, puedes guardar tus módulos de VBA para que sean reutilizables cada vez que los necesites en Excel. Esto es especialmente útil para funciones personalizadas o automatización que deseas tener accesible todo el tiempo, sin duplicar código en múltiples archivos.
Para hacer esto, puedes empaquetar tu código VBA como un complemento de Excel personalizado. Este complemento puede habilitarse en Excel y expondrá tu funcionalidad personalizada como una función disponible globalmente.
Sigue estos pasos:
1. Presiona Alt + F11 en Excel para abrir la ventana "Microsoft Visual Basic for Applications".
2. En el editor de VBA, haz clic en Insertar > Módulo y pega la siguiente macro en la ventana de Módulo recién creada.
Código VBA: Convertir números 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, haz clic en el ícono "Guardar" ubicado en la esquina superior izquierda de la ventana o simplemente presiona Ctrl + S para abrir el cuadro de diálogo "Guardar como".
4. Dentro de la ventana "Guardar como", ingresa el nombre de archivo deseado en el campo "Nombre de archivo". Para el menú desplegable "Guardar como tipo", asegúrate de seleccionar Complemento de Excel (*.xlam).
5. Haz clic en el botón "Guardar" para almacenar tu libro de trabajo como un archivo de complemento de Excel. Esto crea un complemento reutilizable que puede habilitarse en cualquier momento para cualquier libro de trabajo.
6. Una vez guardado, regresa a Excel y cierra el libro de trabajo que acabas de convertir en un complemento.
7. Abre un libro de trabajo nuevo o existente donde quieras usar tu macro. Ingresa la fórmula personalizada en la celda apropiada (por ejemplo, en B2):
=NumberstoWords(A2)

8. Dirígete a la pestaña Desarrollador y haz clic en el botón Complementos de Excel en el grupo Complementos.
9. En el cuadro de diálogo Complementos que aparece, selecciona Examinar.
10. Localiza y selecciona el archivo de complemento que guardaste anteriormente, luego haz clic Aceptar.
11. Tu complemento personalizado, como "Convertir Número a Palabras Complemento", debería aparecer ahora en la lista de complementos. Asegúrate de que esté marcado y haz clic Aceptar para habilitarlo.
12. Ahora, ingresa nuevamente la función personalizada en la celda objetivo (como B2) y presiona Enter. Deberías ver que la fórmula devuelve las palabras correctas en inglés para el número.
=NumberstoWords(A2)
13. Para aplicar rápidamente la fórmula de conversión a múltiples números, arrastra el controlador de autollenado de la celda hacia abajo para copiar la función en otras celdas.

Consejos y Notas:
- Guardar tu macro como un complemento te permite usar las mismas funciones personalizadas, código o automatizaciones en todos tus libros de trabajo, ahorrando tiempo y mejorando la consistencia.
- Si Excel se cierra o el complemento se deshabilita más tarde, las funciones del complemento pueden mostrar temporalmente "#NOMBRE?" hasta que el complemento se cargue nuevamente. Para evitar confusiones, asegúrate de que el complemento esté siempre habilitado en el administrador de complementos cuando sea necesario.
- Algunos usuarios pueden no ver la pestaña Desarrollador por defecto. Para habilitarla, haz clic derecho en la cinta, elige "Personalizar la Cinta" y marca la opción "Desarrollador".
- Es una buena práctica almacenar complementos en una carpeta permanente para evitar referencias perdidas si los archivos se mueven o renombran.
Si prefieres ejecutar el código manualmente, también es posible y, a veces, útil cuando se depura o para uso ad hoc:
- Puedes asignar una macro a la Barra de Acceso Rápido para ejecución con un solo clic en cualquier libro de trabajo visible. Para hacer esto, haz clic derecho en la Barra de Acceso Rápido, selecciona "Personalizar la Barra de Acceso Rápido", luego agrega tu macro.
- También puedes presionar Alt + F11 para abrir el editor de VBA, seleccionar manualmente tu macro y presionar F5 para ejecutar el código según sea necesario.
Ventajas: Esta solución te permite crear y compartir una funcionalidad de macros rica y reutilizable que siempre funciona mientras el complemento esté habilitado.
Desventajas: Los usuarios deben recordar cargar el complemento y, si comparten libros de trabajo, también deben compartir el archivo de complemento y detalles de la función. Además, los complementos no se pueden usar en Excel Online.
Otra forma muy práctica de asegurarte de que tus macros favoritas o más usadas estén listas en cada sesión de Excel, sin importar qué libro de trabajo esté abierto, es usando el Libro de Macros Personal (PERSONAL.XLSB). Este es un archivo especial oculto de Excel que se carga automáticamente cada vez que se inicia Excel, permitiendo que cualquier macro almacenada dentro esté accesible en todos los libros de trabajo abiertos.
Escenarios aplicables: Ideal para automatización personal, scripts de formato rutinario o funciones de utilidad que no necesitas compartir como complementos formales de Excel. Las macros en PERSONAL.XLSB están disponibles en tu computadora sin importar qué archivo esté abierto.
Ventajas: Las macros están disponibles globalmente para tu perfil local de Excel y no requieren instalación de complementos ni archivos adicionales.
Desventajas: Las macros almacenadas de esta manera solo son utilizables en la computadora y cuenta donde existe PERSONAL.XLSB. Compartirlas con otros requiere exportar e importar módulos manualmente.
- Para usar este método, primero debes grabar o crear una macro y asegurarte de que se guarde en el Libro de Macros Personal.
Sigue estos pasos:
- Abre Excel. En la pestaña Vista, haz clic en Macros y luego en Grabar Macro.
- En el cuadro de diálogo, bajo "Almacenar macro en", selecciona Libro de Macros Personal. Completa la grabación (puedes detenerla de inmediato si no es necesario).
- Presiona Alt + F11 para entrar al editor de VBA donde verás un proyecto para PERSONAL.XLSB. Aquí, inserta un nuevo módulo o pega tu código de macro deseado.
- Guarda tus cambios. Excel crea y mantiene automáticamente el libro de trabajo PERSONAL.XLSB en su carpeta de inicio.
- Las macros en PERSONAL.XLSB pueden ejecutarse a través del cuadro de diálogo Macros (Alt + F8), asignarse a botones de la cinta o barra de herramientas, o llamarse desde VBA.
Solución de problemas y mantenimiento: Si las macros en PERSONAL.XLSB no están disponibles, verifica si Excel se abre en Modo Seguro o si la configuración de seguridad de macros está establecida en “Deshabilitar todas las macros”. Además, PERSONAL.XLSB está oculto por defecto; si accidentalmente cierras sin guardar o lo eliminas, es posible que necesites volver a grabar una macro para regenerarlo.
C:\Users\[YourUserName]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Un código VBA para listar todos los complementos en Excel
En Excel, es posible que agregues o insertes algunos complementos para manejar mejor los datos. Como sabemos, podemos ir a la ventana Opciones para ver todos los complementos, pero ¿hay alguna manera de enumerar todos los complementos en una hoja? Ahora, en este tutorial, proporciona un código VBA para enumerar todos los complementos en Excel.
¿Cómo ejecutar la macro de VBA al abrir o cerrar el libro de trabajo?
En este artículo, te diré cómo ejecutar el código VBA al abrir o cerrar el libro de trabajo cada vez.
¿Cómo proteger / bloquear el código VBA en Excel?
Al igual que puedes usar una contraseña para proteger libros de trabajo y hojas de cálculo, también puedes establecer una contraseña para proteger las macros en Excel.
¿Cómo usar un retraso de tiempo después de ejecutar una macro VBA en Excel?
En algunos casos, es posible que necesites un temporizador de retraso para activar una macro VBA en Excel. Por ejemplo, al hacer clic para ejecutar una macro específica, tendrá efecto después de 10 segundos. Este artículo te mostrará un método para lograrlo.
Las mejores herramientas de productividad para Office
Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...
Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
- ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!