Las macros de Excel dejaron de funcionar tras la desaprobación de VBScript: solución para la versión 2508
🔍 WiseChecker

Las macros de Excel dejaron de funcionar tras la desaprobación de VBScript: solución para la versión 2508

Es posible que sus macros de Excel hayan dejado de funcionar repentinamente después de una actualización reciente. Esto se debe a que Microsoft ha dejado de usar el motor VBScript heredado en Windows. El cambio afecta a las macros que dependen de VBScript para ciertas tareas de automatización. Este artículo explica la causa técnica y proporciona pasos para restaurar la funcionalidad de las macros. Aprenderá a volver a habilitar los componentes necesarios y a actualizar su código de macro.

Puntos clave: Restaurar la funcionalidad de las macros tras la desaprobación de VBScript

  • Característica de Windows: VBScript: Este motor de scripting heredado está ahora deshabilitado por defecto en Windows 11 y Windows 10, lo que rompe las macros que lo utilizan.
  • Desarrollador > Macros > Editar: Use esta ruta para abrir el editor de Visual Basic para Aplicaciones y revisar su código de macro en busca de llamadas a VBScript.
  • Cuadro de diálogo de Características de Windows: Volver a habilitar la característica VBScript aquí es una solución temporal para que las macros vuelvan a funcionar.

ADVERTISEMENT

Por qué la desaprobación de VBScript rompe las macros de Excel

Microsoft comenzó a eliminar gradualmente VBScript como medida de seguridad y modernización. A partir de Windows 11 versión 24H2 y actualizaciones recientes de Windows 10, el motor VBScript está deshabilitado por defecto. Este cambio es parte de una desaprobación más amplia anunciada para futuras versiones de Windows. Excel no utiliza VBScript para su motor de macros principal, que es Visual Basic para Aplicaciones.

El problema ocurre cuando una macro VBA contiene código que llama explícitamente al motor VBScript externo. Ejemplos comunes incluyen el uso de “FileSystemObject” de VBScript para operaciones avanzadas de archivos, ejecutar un archivo de script `.vbs` desde VBA, o usar `CreateObject(“Scripting.FileSystemObject”)`. Cuando la macro ejecuta esta línea, falla porque el componente de Windows requerido ya no está activo. El mensaje de error suele ser genérico, como “Error en tiempo de ejecución 429: El componente ActiveX no puede crear el objeto.”

Identificación de macros afectadas

Las macros que creó o descargó hace años son las más propensas a verse afectadas. Es posible que se hayan escrito cuando VBScript era el método estándar para tareas que VBA manejaba mal. Si su macro interactúa mucho con el sistema de archivos de Windows, lee archivos de texto o manipula el Registro de Windows, es probable que use objetos VBScript. El fallo será constante después de actualizar a la versión 2508 de Excel o a una actualización de Windows correspondiente que aplique la desaprobación.

Pasos para volver a habilitar VBScript y corregir las macros

La solución inmediata es volver a activar la característica VBScript en Windows. Esta es una solución temporal. La solución permanente es actualizar su código de macro para usar métodos puros de VBA.

Método 1: Habilitar VBScript en las Características de Windows

  1. Abra las Características de Windows
    Haga clic en el menú Inicio y escriba “Activar o desactivar las características de Windows”. Seleccione el resultado del Panel de control que aparezca.
  2. Localice la opción VBScript
    En el cuadro de diálogo de Características de Windows, desplácese hacia abajo en la lista. Encuentre la entrada etiquetada como “VBScript”. La casilla de verificación estará vacía.
  3. Habilite la característica
    Haga clic en la casilla de verificación junto a “VBScript” para seleccionarla. Haga clic en el botón Aceptar. Windows aplicará el cambio y es posible que le pida reiniciar el equipo.
  4. Pruebe su macro
    Después de reiniciar, abra Excel y el libro que contiene la macro. Ejecute la macro para confirmar que ahora se ejecuta sin el error de ActiveX.

Método 2: Actualice su código de macro VBA

  1. Abra el editor de VBA
    En Excel, vaya a la pestaña Desarrollador. Haga clic en el botón Macros, seleccione su macro y haga clic en Editar. Esto abre la ventana de Microsoft Visual Basic para Aplicaciones.
  2. Encuentre dependencias de VBScript
    Use la función de búsqueda (Ctrl + F) dentro del módulo de código. Busque palabras clave como “Scripting”, “FileSystemObject”, “.vbs” o “CreateObject”.
  3. Reemplace con equivalentes de VBA
    Reemplace las llamadas a FileSystemObject de VBScript con declaraciones nativas de VBA. Por ejemplo, use `Open` y `Line Input` para archivos de texto en lugar de `FileSystemObject`. Use la función `Dir` para listados de archivos. Para ediciones del Registro, use `VBA.CreateObject` con llamadas apropiadas a la API de Windows si es absolutamente necesario.
  4. Pruebe la macro actualizada
    Cierre el editor de VBA y guarde su libro. Ejecute la macro nuevamente. Ahora debería funcionar usando solo VBA, lo que la hace a prueba de futuro.

ADVERTISEMENT

Si su macro aún falla después de estos pasos

La macro devuelve un error de automatización diferente

Si habilitar VBScript no corrige el error 429, el problema podría ser más profundo. La macro puede depender de otro control ActiveX obsoleto. Abra el editor de VBA y vaya a Herramientas > Referencias. Busque referencias faltantes marcadas como “FALTA”. Desmarque estas referencias. Su macro puede necesitar una reescritura completa si su biblioteca principal ya no está disponible.

Excel muestra el mensaje “Las macros están deshabilitadas”

Esta es una configuración de seguridad separada. La desaprobación de VBScript no afecta al Centro de confianza de Excel. Vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros. Seleccione “Habilitar todas las macros” para pruebas, o “Deshabilitar todas las macros con notificación” para uso regular. Guarde y reinicie Excel.

La política de TI de la empresa bloquea la habilitación de características de Windows

En entornos corporativos administrados, es posible que no tenga permiso para acceder al cuadro de diálogo de Características de Windows. Comuníquese con su equipo de soporte de TI. Proporcióneles el nombre específico de la macro y la razón comercial por la que se necesita. Ellos pueden enviar una directiva de grupo para volver a habilitar VBScript en su máquina o aprobar la actualización del código.

Soluciones temporales vs. actualización de código: diferencias clave

Elemento Volver a habilitar VBScript en Windows Actualizar el código de macro a VBA puro
Solución a largo plazo No, la característica se eliminará Sí, el código es a prueba de futuro
Postura de seguridad Reintroduce un riesgo obsoleto Mantiene la seguridad moderna
Nivel de habilidad requerido Administración básica de Windows Edición intermedia de VBA
Inversión de tiempo 5 minutos 30 minutos a varias horas
Impacto en otros usuarios Solo afecta a su PC El libro actualizado funciona para todos

Ahora puede ejecutar macros que se rompieron por la actualización reciente de Windows. Use la solución temporal de Características de Windows para necesidades inmediatas, pero planee actualizar su código VBA. Explore el explorador de objetos del editor de VBA presionando F2 para ver todos los métodos nativos disponibles. Para operaciones complejas de archivos, considere grabar una nueva macro para ver la sintaxis VBA moderna que genera Excel.

ADVERTISEMENT