¿Cómo soluciono “Run-time error 91” al usar Outlook desde Excel?

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

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario