Automazione di Outlook mediante Visual Basic

Sommario

In questo articolo viene spiegato come controllare Microsoft Outlook a livello di codice utilizzando la funzionalità di automazione di Visual Basic. Nell'esempio vengono illustrate le procedure di creazione di contatti, creazione di appuntamenti e invio di messaggi mediante il modello oggetti di Microsoft Outlook.

Informazioni

Per creare ed eseguire l'esempio, attenersi alla procedura descritta di seguito. Per eseguire l'esempio, è necessario un riferimento ad associazione anticipata a una libreria di tipi di Microsoft Outlook. Nella tabella seguente sono elencati i nomi file delle librerie di tipi per le varie versioni di Microsoft Outlook:
Versione di OutlookIdentificazione della libreria di tipi nell'elenco di riferimentiNomefile
Outlook 97"Libreria oggetti di Microsoft Outlook 8.0"msoutl8.olb
msoutl8.olb"Libreria oggetti di Microsoft Outlook 98"msoutl85.olb
Outlook 2000"Libreria oggetti di Microsoft Outlook 9.0"msoutl9.olb
Outlook 2002"Libreria oggetti di Microsoft Outlook 10.0"msoutl.olb
Office Outlook 2003"Libreria oggetti di Microsoft Outlook 11.0"msoutl.olb

Creazione del modello di automazione

  1. Avviare Visual Basic e creare un nuovo progetto EXE standard.
  2. Scegliere Riferimenti dal menu Progetto e selezionare Microsoft Outlook.
  3. Aggiungere un pulsante al form.
  4. Fare doppio clic sul pulsante, quindi aggiungere il seguente codice:
    ' Start Outlook.  
    ' If it is already running, you'll use the same instance...
    Dim olApp As Outlook.Application
    Set olApp = CreateObject("Outlook.Application")

    ' Logon. Doesn't hurt if you are already running and logged on...
    Dim olNs As Outlook.NameSpace
    Set olNs = olApp.GetNamespace("MAPI")
    olNs.Logon

    ' Create and Open a new contact.
    Dim olItem As Outlook.ContactItem
    Set olItem = olApp.CreateItem(olContactItem)

    ' Setup Contact information...
    With olItem
    .FullName = "James Smith"
    .Birthday = "9/15/1975"
    .CompanyName = "Microsoft"
    .HomeTelephoneNumber = "704-555-8888"
    .Email1Address = "someone@microsoft.com"
    .JobTitle = "Developer"
    .HomeAddress = "111 Main St." & vbCr & "Charlotte, NC 28226"
    End With

    ' Save Contact...
    olItem.Save

    ' Create a new appointment.
    Dim olAppt As Outlook.AppointmentItem
    Set olAppt = olApp.CreateItem(olAppointmentItem)

    ' Set start time for 2-minutes from now...
    olAppt.Start = Now() + (2# / 24# / 60#)

    ' Setup other appointment information...
    With olAppt
    .Duration = 60
    .Subject = "Meeting to discuss plans..."
    .Body = "Meeting with " & olItem.FullName & " to discuss plans."
    .Location = "Home Office"
    .ReminderMinutesBeforeStart = 1
    .ReminderSet = True
    End With

    ' Save Appointment...
    olAppt.Save

    ' Send a message to your new contact.
    Dim olMail As Outlook.MailItem
    Set olMail = olApp.CreateItem(olMailItem)
    ' Fill out & send message...
    olMail.To = olItem.Email1Address
    olMail.Subject = "About our meeting..."
    olMail.Body = _
    "Dear " & olItem.FirstName & ", " & vbCr & vbCr & vbTab & _
    "I'll see you in 2 minutes for our meeting!" & vbCr & vbCr & _
    "Btw: I've added you to my contact list."
    olMail.Send

    ' Clean up...
    MsgBox "All done...", vbMsgBoxSetForeground
    olNS.Logoff
    Set olNs = Nothing
    Set olMail = Nothing
    Set olAppt = Nothing
    Set olItem = Nothing
    Set olApp = Nothing
  5. Eseguire il progetto, quindi fare clic sul pulsante per eseguire il codice.
Dopo l'esecuzione del codice, dovrebbe essere presente un nuovo contatto denominato "James Smith", dovrebbe essere stato pianificato un appuntamento dopo due minuti con un promemoria che verrà visualizzato dopo un minuto e dovrebbe essere stato inviato un messaggio a someone@microsoft.com. Essendo inoltre stata aggiunta la data di compleanno del contatto (15/09), è stato aggiunto un evento ricorrente per il Calendario di Outlook come promemoria di questo giorno.

In Outlook 2002 sono state aggiunte due nuove finestre di dialogo: in una viene visualizzato un messaggio di avviso indicante che un programma sta tentando di accedere agli indirizzi di posta elettronica memorizzati in Outlook e in cui si richiede di confermare questa operazione e nell'altra viene visualizzato un messaggio indicante che un programma sta tentando di inviare posta elettronica. Questa funzionalità impedisce ai virus di inviare posta elettronica dal sistema all'insaputa dell'utente.

Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
290500 Descrizione delle caratteristiche di protezione della posta elettronica per sviluppatori in Outlook 2002

Riferimenti

Per ulteriori informazioni sulle risorse di programmazione di Outlook, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
166368 Risorse per la personalizzazione di form e la programmazione in Outlook 97

180826 Risorse per la personalizzazione di form e la programmazione in Outlook 98

271225 Risorse per la personalizzazione di form e la programmazione in Outlook 2000

287531 OL2002: Risorse per la creazione di moduli personalizzati e la programmazione

313802 Recupero di contatti mediante il modello oggetti di Outlook in Visual Basic .NET

313788 Creazione di appuntamenti mediante il modello oggetti di Outlook in Microsoft Visual Basic .NET

Proprietà

ID articolo: 220595 - Ultima revisione: 02 feb 2006 - Revisione: 1

Feedback