Cómo automatizar Outlook con Visual Basic

Resumen

En este artículo se demuestra cómo controlar mediante programación Microsoft Outlook utilizando la automatización de Visual Basic. El ejemplo muestra la creación de contactos y citas, y el envío de mensajes con el modelo de objetos de Microsoft Outlook.

Más información

Siga los pasos siguientes crear y ejecutar el ejemplo. Para ejecutar el ejemplo, necesita una referencia enlazada en tiempo de compilación a una biblioteca de tipos de Microsoft Outlook. La tabla siguiente muestra los nombres de archivo de las bibliotecas de tipos de las diferentes versiones de Microsoft Outlook:
Versión de Outlook:Cómo aparece la biblioteca de tipos en la lista de referenciasNombre de archivo
Outlook 97"Biblioteca de objetos de Microsoft Outlook 8.0"msoutl8.olb
msoutl8.olb"Biblioteca de objetos de Microsoft Outlook 98"msoutl85.olb
Outlook 2000"Biblioteca de objetos de Microsoft Outlook 9.0"msoutl9.olb
Outlook 2002"Biblioteca de objetos de Microsoft Outlook 10.0"msoutl.olb
Office Outlook 2003"Biblioteca de objetos de Microsoft Outlook 11.0"msoutl.olb

Generar el ejemplo de automatización

  1. Inicie Visual Basic y cree un nuevo proyecto EXE estándar.
  2. En el menú Proyecto, elija Referencias y seleccione Microsoft Outlook.
  3. Agregue un botón a su formulario.
  4. Haga doble clic en el botón y, a continuación, agregue el código siguiente:
     ' Iniciar Outlook. ' Si ya se está ejecutando, utilizará la misma instancia... Dim olApp As Outlook.Application Set olApp = CreateObject("Outlook.Application")

    'Inicio de sesión. No importa si ya lo está ejecutando y tiene iniciada una sesión... Dim olNs As Outlook.NameSpace Set olNs = olApp.GetNamespace("MAPI") olNs.Logon

    ' Crear y abrir un contacto nuevo. Dim olItem As Outlook.ContactItem Set olItem = olApp.CreateItem(olContactItem)

    'Configurar la información de contacto... With olItem .FullName = "James Smith" .Birthday = "9/15/1975" .CompanyName = "Microsoft" .HomeTelephoneNumber = "704-555-8888" .Email1Address = "alguien@microsoft.com" .JobTitle = "Developer" .HomeAddress = "111 Main St." & vbCr & "Charlotte, NC 28226" End With

    ' Guardar el contacto... olItem.Save

    ' Crear una nueva cita. Dim olAppt As Outlook.AppointmentItem Set olAppt = olApp.CreateItem(olAppointmentItem)

    ' Establecer la hora de inicio 2 minutos a partir de ahora... olAppt.Start = Now() + (2# / 24# / 60#)

    ' Configurar la información de otra cita... With olAppt .Duration = 60 .Subject = "Reunión para discutir los planes..." .Body = "Reunión con" & olItem.FullName & " para discutir los planes." .Location = "Oficina doméstica" .ReminderMinutesBeforeStart = 1 .ReminderSet = True End With

    ' Guardar la cita... olAppt.Save

    ' Enviar un mensaje al nuevo contacto. Dim olMail As Outlook.MailItem Set olMail = olApp.CreateItem(olMailItem) ' Rellenar y enviar el mensaje... olMail.To = olItem.Email1Address olMail.Subject = "Acerca de nuestra reunión..." olMail.Body = _ "Estimado/a" & olItem.FirstName & ", " & vbCr & vbCr & vbTab & _ "te veré dentro de dos minutos en la reunión." & vbCr & vbCr & _ "Btw: Lo he agregado a mi lista de contactos."olMail.Send

    ' Limpiar... MsgBox "Todo terminado...", vbMsgBoxSetForeground olNS.Logoff Set olNs = Nothing Set olMail = Nothing Set olAppt = Nothing Set olItem = Nothing Set olApp = Nothing
  5. Ejecute el proyecto y haga clic en el botón para ejecutar el código.
Cuando el código se ejecute, debería tener un nuevo contacto denominado "James Smith" y una cita programada en dos minutos con un aviso para aparecer en un minuto, y haber enviado un mensaje a alguien@microsoft.com. Además, dado que agregó un cumpleaños para su contacto (9/15), se agregó un evento periódico para que el Calendario de Outlook se lo recuerde ese día.

En Outlook 2002 son nuevos los dos cuadros de diálogo: uno que le advierte de que un programa está intentando tener acceso a las direcciones de correo electrónico que ha almacenado en Outlook y que le pregunta si desea permitirlo, y otro mensaje para indicarle que un programa está intentando enviar correo electrónico. Esta característica impedirá que un virus lo use para enviar correo electrónico desde su sistema sin su conocimiento.

Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

290500 Descripción de las características de seguridad del correo electrónico para desarrolladores en Outlook 2002

Referencias

Para obtener información adicional acerca de los recursos de programación de Outlook, haga clic en los número de artículo siguientes para verlos en Microsoft Knowledge Base:

166368 Recursos de formularios personalizados y programación en Outlook 97

180826 Recursos de formularios personalizados y programación en Outlook 98

271225 Recursos de formularios personalizados y programación en Outlook 2000

287531 Lista de recursos de formularios personalizados y programación con Outlook 2002

313802 Cómo recuperar contactos utilizando el modelo de objetos de Outlook en Visual Basic .NET

313788 Cómo crear una cita utilizando el modelo de objetos de Outlook en Microsoft Visual Basic .NET

Propiedades

Id. de artículo: 220595 - Última revisión: 2 nov. 2006 - Revisión: 1

Comentarios