
El «Run-time error 91» en Excel al intentar interactuar con Outlook generalmente está relacionado con un objeto no creado o una variable de objeto no establecida correctamente. Para solucionar este problema, asegúrate de que estás instanciando correctamente los objetos de Outlook en tu código VBA. Aquí tienes algunos pasos a seguir para solucionar el error:
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Outlook.Namespace
Dim OutlookMail As Outlook.MailItem
' Chequea si Outlook ya está abierto
On Error Resume Next
Set OutlookApp = GetObject(, "Outlook.Application")
On Error GoTo 0
' Si Outlook no está abierto, se crea una nueva instancia
If OutlookApp Is Nothing Then
Set OutlookApp = CreateObject("Outlook.Application")
End If
' Obtiene la opción Namespace predeterminada MAPI
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
With OutlookMail
.To = "destinatario@example.com"
.Subject = "Asunto del correo"
.Body = "Cuerpo del correo"
.Send
End With
- Verifica las referencias:
- Asegúrate de que tienes activada la referencia a la biblioteca de Objetos de Outlook en VBA. Para hacerlo, ve a `Herramientas` > `Referencias` en el editor de VBA y asegúrate de que «Microsoft Outlook xx.x Object Library» está marcada. El «xx.x» dependerá de la versión de Outlook que estés utilizando.
- Revisa la instancia de Outlook:
- Asegúrate de que estás creando o estableciendo correctamente la instancia de Outlook. Usa algo como esto al principio de tu código:
- Este fragmento asegura que se maneje la situación cuando Outlook ya está abierto y crea una nueva instancia si no lo está.
- Establece correctamente los mensajes de correo:
- Cuando crees un nuevo correo, asegúrate de hacerlo correctamente. Aquí hay un ejemplo que completa el proceso:
- Depurar el código:
- Usa `Debug.Print` o coloca puntos de interrupción en tu código para verificar en qué línea ocurre exactamente el error. Esto puede ayudarte a saber cuál de los objetos no está siendo correctamente instanciado.
Siguiendo estos pasos, deberías estar en una buena posición para solucionar el error «Run-time error 91» en tu script de VBA. Si el problema persiste, revisa tu código en busca de cualquier otra instancia donde un objeto podría no estar declarado o inicializado antes de su uso.
Conoce nuestros servicios



