Usted ve el error 400 cuando una macro en su módulo VBA de PowerPoint no se ejecuta. Este error significa que PowerPoint no puede completar la operación debido a un problema en tiempo de ejecución en el código. La causa suele ser una referencia a un objeto faltante, un módulo dañado o un conflicto con un complemento de terceros. Este artículo explica por qué ocurre el error 400 y proporciona métodos paso a paso para corregirlo en módulos VBA personalizados.
Puntos clave: Corregir el error 400 en VBA de PowerPoint
- Alt + F11 > Depurar > Compilar VBAProject: Encuentra errores de sintaxis y referencias faltantes que causan el error 400.
- Herramientas > Referencias en el editor VBA: Desmarque referencias de bibliotecas rotas o faltantes que provocan el error 400 en tiempo de ejecución.
- Modo seguro (powerpnt /safe): Desactiva todos los complementos para probar si un complemento de terceros está causando el error.
Por qué ocurre el error 400 de macro de PowerPoint en módulos VBA
El error 400 es un error de tiempo de ejecución genérico en VBA. Aparece cuando la macro intenta ejecutar una instrucción que PowerPoint no puede procesar. Las causas más comunes son:
Referencias a objetos rotas
Cuando escribe una macro que hace referencia a una diapositiva, forma o gráfico específico, la referencia debe existir en tiempo de ejecución. Si el objeto fue eliminado, renombrado o nunca creado, PowerPoint lanza el error 400. Esto ocurre con frecuencia cuando copia código de una presentación a otra sin ajustar los nombres de los objetos.
Módulo VBA dañado
Un módulo VBA puede dañarse después de ediciones repetidas, especialmente si copia y pega código de fuentes no confiables. La corrupción puede introducir caracteres invisibles o saltos de línea rotos que impiden que la macro se compile correctamente.
Conflictos con complementos
Los complementos de terceros pueden interceptar llamadas VBA o cambiar el modelo de objetos de PowerPoint. Cuando un complemento modifica la forma en que PowerPoint maneja las macros, el error 400 puede aparecer incluso si el código es correcto.
Referencias a bibliotecas faltantes
Los módulos VBA a menudo dependen de bibliotecas externas como Microsoft Forms 2.0 o Microsoft Office Object Library. Si falta una biblioteca referenciada o su versión cambió, la macro no puede vincularse a los objetos requeridos y ocurre el error 400.
Pasos para diagnosticar y corregir el error 400 de macro en PowerPoint
Siga estos métodos en orden. Comience con la solución más simple y pase a pasos más avanzados solo si el error persiste.
Método 1: Compilar el proyecto VBA
- Abra el editor VBA
Presione Alt + F11 en PowerPoint para abrir el editor de Visual Basic para Aplicaciones. - Ejecute el comando Compilar
Haga clic en Depurar en la barra de menú y luego seleccione Compilar VBAProject. PowerPoint escanea todos los módulos en busca de errores de sintaxis y referencias faltantes. - Lea el mensaje de error
Si la compilación falla, PowerPoint resalta la línea problemática. Corrija el error de sintaxis o agregue el objeto faltante. Repita hasta que la compilación se realice sin errores.
Método 2: Verificar y eliminar referencias rotas
- Abra el cuadro de diálogo Referencias
En el editor VBA, haga clic en Herramientas > Referencias. - Identifique referencias rotas
Busque elementos marcados como FALTA. Estas referencias apuntan a bibliotecas que no están instaladas o que se han movido. - Desmarque la referencia rota
Desactive la casilla junto a cualquier referencia FALTA. Haga clic en Aceptar. - Recompile el proyecto
Presione Alt + F11 para volver al editor VBA. Ejecute Depurar > Compilar VBAProject nuevamente. Si no aparecen errores, pruebe la macro.
Método 3: Probar macros en modo seguro
- Cierre PowerPoint por completo
Asegúrese de que no haya ventanas de PowerPoint abiertas. - Inicie PowerPoint en modo seguro
Presione Windows + R, escribapowerpnt /safey presione Enter. PowerPoint se abre sin ningún complemento. - Ejecute la macro nuevamente
Abra la presentación que contiene el módulo VBA personalizado. Ejecute la macro. Si el error 400 no aparece, un complemento de terceros es la causa. - Desactive los complementos uno por uno
Salga del modo seguro y reinicie PowerPoint normalmente. Vaya a Archivo > Opciones > Complementos. Haga clic en Ir junto a Complementos de PowerPoint. Desactive los complementos uno a la vez y pruebe la macro después de cada cambio.
Método 4: Exportar y volver a importar el módulo VBA
- Exporte el módulo
En el editor VBA, haga clic derecho en el nombre del módulo en el Explorador de proyectos. Seleccione Exportar archivo. Guarde el archivo como un archivo .bas en su escritorio. - Elimine el módulo dañado
Haga clic derecho en el módulo nuevamente y elija Quitar módulo. Haga clic en No cuando se le pregunte si desea exportar antes de eliminar. - Importe el módulo limpio
Haga clic derecho en cualquier lugar del Explorador de proyectos. Seleccione Importar archivo. Elija el archivo .bas que guardó. - Recompile y pruebe
Presione Alt + F11, luego Depurar > Compilar VBAProject. Ejecute la macro para confirmar que el error ha desaparecido.
Método 5: Reparar la instalación de Office
- Abra el Panel de control
Presione Windows + R, escribacontroly presione Enter. - Seleccione Programas y características
Busque Microsoft 365 u Office en la lista. Haga clic derecho sobre él y elija Cambiar. - Ejecute Reparación rápida
Seleccione Reparación rápida y haga clic en Reparar. Siga las instrucciones en pantalla. Si el error persiste, ejecute Reparación en línea en su lugar.
Si el error 400 de macro de PowerPoint aún aparece después de la corrección principal
El error 400 aparece solo en diapositivas específicas
La macro probablemente hace referencia a una forma u objeto que existe en algunas diapositivas pero no en otras. Abra el editor VBA y establezca un punto de interrupción en la línea que accede al objeto. Ejecute la macro y avance por el código con F8. Cuando el depurador se detenga, verifique la ventana Inmediato para ver el nombre del objeto. Agregue una instrucción If para verificar que el objeto exista antes de usarlo.
El error 400 aparece cuando la macro intenta guardar
El formato de archivo puede no admitir macros. Vaya a Archivo > Guardar como. En Tipo de archivo, seleccione Presentación habilitada para macros de PowerPoint (.pptm). Si guarda como .pptx, PowerPoint elimina todo el código VBA y el error 400 aparecerá cuando la macro intente ejecutarse.
El error 400 aparece después de copiar código de otra presentación
El código copiado puede contener referencias a objetos que existen solo en el archivo de origen. Abra el editor VBA y revise cada línea que use ActivePresentation.Slides o ActiveWindow. Reemplace los números de diapositiva codificados con variables o recorra todas las diapositivas. Use un bucle For Each para evitar hacer referencia a un índice de diapositiva inexistente.
Error 400 de VBA frente a otros errores comunes de VBA en PowerPoint
| Elemento | Error 400 | Error 5 (Llamada a procedimiento no válida) | Error 91 (Variable de objeto no establecida) |
|---|---|---|---|
| Causa | Error en tiempo de ejecución durante la ejecución de la macro | Llamar a un método con argumentos no válidos | Usar un objeto que no ha sido asignado |
| Solución típica | Compilar el proyecto y verificar referencias | Verificar tipos y valores de argumentos | Establecer el objeto con la palabra clave Set antes de usarlo |
| Método de depuración | Depurar > Compilar VBAProject | Avanzar por el código con F8 | Verificar asignaciones de variables en la ventana Inmediato |
El error 400 en módulos VBA de PowerPoint casi siempre es causado por un objeto faltante, una referencia de biblioteca rota o un módulo dañado. Comience compilando el proyecto VBA y revisando el cuadro de diálogo Referencias. Si el error persiste, ejecute PowerPoint en modo seguro para descartar conflictos con complementos. Exporte y vuelva a importar el módulo como una corrección final a nivel de código. Para problemas a nivel de sistema, una Reparación rápida de Office a menudo resuelve el problema. Después de corregir el error 400, considere agregar código de manejo de errores usando On Error Resume Next u On Error GoTo para hacer que sus macros sean más robustas contra futuros errores en tiempo de ejecución.