Come automatizzare Outlook da un altro programma

Identificativo articolo: 201096 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la una versione di Microsoft Outlook 97 di questo articolo, vedere 168095.
Per la una versione di Microsoft Outlook 98 di questo articolo, vedere 181202.
Per la una versione di Microsoft Outlook 2002 di questo articolo, vedere 291120.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene fornita una panoramica della programmazione di Outlook utilizzando l'automazione da un altro programma.

Informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presume che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli addetti al Supporto Microsoft possono spiegare la funzionalità di una particolare procedura, ma non possono modificare questi esempi per fornire ulteriori funzionalità o realizzare procedure per soddisfare esigenze specifiche.
Se si dispone di esperienza di programmazione limitata, è possibile che desideri contattare un Microsoft Certified Partner o servizi di consulenza Microsoft. Per ulteriori informazioni, visitare questi siti Web di Microsoft:

Microsoft Certified Partner - https://partner.microsoft.com/global/30000104

Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice

Per ulteriori informazioni sulle opzioni di supporto disponibili e su come contattare Microsoft, visitare il seguente sito: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMSL'automazione consente di un programma controllare un altro programma di esecuzione di comandi o il recupero delle informazioni a livello di programmazione. I codici di esempio riportati in questo articolo possono essere utilizzati in Microsoft Word, Microsoft Excel, Microsoft Visual Basic o in qualsiasi altro programma che supporti l'Automazione.

Binding anticipato o binding posticipato

È possibile utilizzare sia "preventivo" o "tardivo" associazione per avviare una sessione di automazione. L'associazione tardiva utilizza la funzione di GetObject o CreateObject per l'inizializzazione di Outlook. Ad esempio, il codice riportato di seguito imposta un oggetto per il programma di Office e precisamente l'oggetto di livello superiore del modello oggetti di Outlook. Il codice di automazione necessario definire un oggetto Outlook.Application per accedere a uno qualsiasi degli altri oggetti di Outlook di sotto di quella.
Dim objOL as Object
Set objOL = CreateObject("Outlook.Application")
				
Per utilizzare il binding anticipato è necessario fare riferimento alla libreria di oggetti di Outlook. Per fare questo da Visual Basic (VB) o Visual Basic, Applications Edition attenersi alla seguente procedura:
  1. In Visual Basic Editor, dal menu Strumenti , scegliere riferimenti .
  2. Fare clic per selezionare il Microsoft Outlook 9.0 Object Library casella di controllo e quindi fare clic su OK .
Il file di libreria di oggetti è Msoutl9.olb e viene installato nella cartella c:\Programmi\Microsoft Office\Office per impostazione predefinita. Una volta che si fa riferimento a libreria di oggetti di Outlook, è possibile utilizzare la seguente sintassi per avviare una sessione di Outlook:
Set ol = New Outlook.Application
				
con associazione anticipata di presenta due vantaggi importanti. In primo luogo, il codice utilizzando l'associazione anticipata viene eseguito più rapidamente di codice utilizzando l'associazione tardiva (CreateObject/GetObject). In secondo luogo, grazie al riferimento alla libreria di oggetti di Outlook è possibile disporre del supporto online di programmazione di Outlook utilizzando il Visualizzatore oggetti e la Guida.

Il modello oggetti di Outlook

Il modello oggetti di Outlook consente di manipolare i dati memorizzati nelle cartelle di Outlook. Nuove funzioni di Outlook consentono inoltre di modificare la barra di Outlook, utilizzare gli elementi selezionati in una cartella e modificare finestre sia a livello di elemento e livello di applicazione. Aggiungendo degli eventi, il codice sarà in grado di rispondere ai vari eventi che si verificano in Outlook consentendo in tal modo la creazione di una soluzione basata sugli eventi.

Rispetto a Word ed Excel, le funzionalità disponibili per il controllo di Outlook sono tuttavia limitate. Molte caratteristiche di Outlook non sono visualizzate né personalizzabili tramite il modello oggetti di Outlook. Non è possibile, ad esempio, utilizzare il modello a oggetti per modificare le impostazioni Opzioni dal menu Strumenti , sebbene sia di una nuova funzionalità di Outlook che è possibile possibile creare una pagina personalizzata nella finestra di dialogo Proprietà cartella o Opzioni .

Nota : come per aggirare le limitazioni imposte al modello a oggetti, è possibile utilizzare l'oggetto di CommandBars fornito da Microsoft Office per eseguire la maggior parte dei comandi assegnati ai pulsanti della barra degli strumenti o comandi di menu. Ad esempio, è possibile utilizzare l'oggetto CommandBars per eseguire il comando Nuova chiamata nel sottomenu del menu Strumenti , per visualizzare la finestra di dialogo Nuova chiamata Componi .

La maggior parte delle soluzioni di programmazione deve poter interagire con i dati memorizzati in Outlook. Outlook memorizza tutte le informazioni nelle cartelle MAPI (Messaging Application Programming Interface),. Di conseguenza, dopo aver impostato una variabile oggetto su Outlook.Application , comunemente verrà impostato un oggetto Namespace a MAPI:
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
				
Una volta impostato l'oggetto spazio dei nomi , si è pronti per impostare l'oggetto successivo in base a una cartella all'interno dello spazio dei nomi MAPI. Un modo comune per fare questo è specificando le cartelle predefinite di Outlook ovvero le cartelle dello stesso livello della cartella Posta in arrivo. Il seguente codice verrà impostata l'oggetto objFolder alla cartella Contatti predefinita:
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set objFolder = olns.GetDefaultFolder(olFolderContacts)
				
per ulteriori informazioni sul riferimento ad altri tipi di cartelle, vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
esempi per gli elementi di riferimenti e le cartelle di programmazione 208520
Una volta giunti nella cartella contenente gli elementi che si desidera utilizzare o creare, è possibile utilizzare il codice appropriato per eseguire le operazioni desiderate. Di seguito in questo articolo sono riportati alcuni esempi tipici di programmazione.

Oltre ad accedere ai dati di Outlook da un'altra applicazione, è possibile fare in modo che l'applicazione "sappia" quando in Outlook si verificano determinati eventi,. ad esempio quando un elemento viene aggiunto a una cartella, quando l'utente seleziona un elemento diverso della cartella o quando viene visualizzato un promemoria di Outlook. Per un elenco completo degli eventi disponibili, vedere Microsoft Outlook Visual Basic Reference (Vbaoutl9.chm). Per informazioni su come ottenere il file della Guida, vedere la sezione Riferimenti in questo articolo.

Per un esempio di come è possibile integrare gli eventi di Outlook nell'applicazione, vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
225502 gli eventi di utilizzo di Outlook in un altro programma

Esempi di codice per l'esecuzione delle operazioni di programmazione più diffuse

Esempio: Creare un nuovo elemento attività predefinito

Sub CreateNewDefaultOutlookTask()

   Dim ol As Outlook.Application
   Dim NewTask As Outlook.TaskItem

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Create a new standard task.
   Set NewTask = ol.CreateItem(olTaskItem)

   ' Display the new task form so the user can fill it out.
   NewTask.Display

End Sub
				

Esempio: Creare un nuovo contatto tramite un modulo personalizzato

Sub CreateNewContactFromCustomForm()

   Dim ol As Outlook.Application
   Dim olns As Outlook.NameSpace
   Dim objFolder As Outlook.MAPIFolder
   Dim AllContacts As Outlook.Items
   Dim NewContact As Outlook.ContactItem

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Set the Namespace object.
   Set olns = ol.GetNamespace("MAPI")

   ' Set the default Contacts folder.
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)

   ' Set objAllContacts equal to the collection of all contacts.
   Set AllContacts = objFolder.Items

   ' Add a new contact to the AllContacts collection using the
   ' "IPM.Contact.MyForm" form.
   Set NewContact = AllContacts.Add("IPM.Contact.MyForm")

   ' Display the new contact form.
   NewContact.Display

End Sub
				

Esempio: Ciclo attraverso tutti i contatti predefiniti

Sub GetOutlookContacts()

   Dim ol As Object
   Dim olns As Object
   Dim objFolder As Object
   Dim objAllContacts As Object
   Dim Contact As Object

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Set the Namespace object.
   Set olns = ol.GetNamespace("MAPI")

   ' Set the default Contacts folder.
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)

   ' Set objAllContacts equal to the collection of all contacts.
   Set objAllContacts = objFolder.Items

   ' Loop through each contact.
   For Each Contact In objAllContacts

      ' Display the Fullname field for the contact.
      MsgBox Contact.FullName

   Next

End Sub
				

Riferimenti

Per ulteriori informazioni sulle risorse disponibili e sulle risposte alle domande più frequenti sulle soluzioni di Microsoft Outlook 2000, vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
146636 domande sui moduli personalizzati e soluzioni di Outlook

Proprietà

Identificativo articolo: 201096 - Ultima modifica: giovedì 23 novembre 2006 - Revisione: 3.4
Le informazioni in questo articolo si applicano a:
  • Microsoft Outlook 2000 Standard Edition
Chiavi: 
kbmt kbautomation kbdtacode kbhowto kbprogramming KB201096 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 201096
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti