Identificativo articolo: 291120 - Ultima modifica: giovedì 23 novembre 2006 - Revisione: 3.2

Automatizzazione di Outlook 2002 da un altro programma

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I291120
Per la versione di questo articolo relativa a Microsoft Outlook 97, vedere 168095  (http://support.microsoft.com/kb/168095/ ) .
Per la versione di questo articolo relativa a Microsoft Outlook 98, vedere 181202  (http://support.microsoft.com/kb/181202/ ) .
Per la versione di questo articolo relativa a Microsoft Outlook 2000, vedere 201096  (http://support.microsoft.com/kb/201096/ ) .

In questa pagina

Espandi tutto | Chiudi tutto

Sommario

In questo articolo viene illustrato brevemente come programmare 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 esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o creare procedure atte a soddisfare specifiche esigenze. Se si dispone di esperienza di programmazione limitata, si consiglia di contattare un Microsoft Certified Partner o la filiale Microsoft locale per informazioni sulla consulenza tecnica. Per ulteriori informazioni in merito ai Microsoft Certified Partner, visitare il seguente sito Web Microsoft:
https://partner.microsoft.com/global/30000104"> (https://partner.microsoft.com/global/30000104)
Per ulteriori informazioni sulle opzioni di supporto disponibili e su come contattare Microsoft, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
L'Automazione consente a un programma di controllare un altro programma inviando comandi o recuperando 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 il binding "anticipato" oppure il binding "posticipato" per avviare una sessione di Automazione. Il binding postecipato utilizza la funzione GetObject o CreateObject per inizializzare 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 deve innanzitutto definire un oggetto Outlook.Application al fine di accedere a qualsiasi oggetto di Outlook che si trovi al di sotto di tale oggetto.
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. Nell'editor di Visual Basic, Applications Editor, scegliere Riferimenti dal menu Strumenti. Se invece si utilizza Microsoft Visual Basic, fare clic su Riferimenti dal menu Progetti.
  2. Fare clic per selezionare la casella di controllo Libreria oggetti di Microsoft Office 10.0 e quindi scegliere OK.
Il file della libreria di oggetti è il file Msoutl.olb, installato per impostazione predefinita nella cartella C:\Programmi\Microsoft Office\Office10. Una volta fatto riferimento alla libreria di oggetti di Outlook è possibile utilizzare la sintassi riportata di seguito per avviare una sessione di Outlook:
Set ol = New Outlook.Application
				
L'utilizzo del binding anticipato comporta due importanti vantaggi. Innanzitutto il codice che utilizza questo tipo di binding viene solitamente eseguito più velocemente rispetto a quello che utilizza il binding posticipato (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. Altre funzionalità consentono altresì di manipolare la Barra di Outlook, lavorare con elementi selezionati di una cartella, manipolare le finestre a livello di elemento o di applicazione e modificare le viste. 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. Ad esempio, se non è possibile utilizzare il modello oggetti per modificare gran parte delle impostazioni delle Opzioni disponibili nel menu Strumenti.

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

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), Pertanto, dopo aver impostato una variabile di oggetto in Outlook.Application, in genere si imposta l'oggetto Namespace in MAPI:
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
				
Una volta impostato l'oggetto Namespace si è pronti per impostare l'oggetto successivo in base a una cartella contenuta nello 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 codice riportato di seguito imposta l'oggetto objFolder> in base alla cartella dei 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, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
290804  (http://support.microsoft.com/kb/290804/ ) Esempi di programmazione per fare riferimento a elementi e cartelle in Outlook 2002
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 (Vbaol10.chm). Per informazioni su come ottenere il file della Guida, vedere la sezione Riferimenti in questo articolo.

Per ulteriori informazioni sull'integrazione di eventi di Outlook nelle proprie applicazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
291119  (http://support.microsoft.com/kb/291119/ ) OL2002: Utilizzo di eventi di Outlook in altri programmi

Codice per l'esecuzione delle operazioni di programmazione più diffuse

Creazione di 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: Creazione di 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: Esecuzione di un ciclo in 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 relative alle soluzioni basate su Microsoft Outlook, vedere il seguente articolo della Microsoft Knowledge Base:
287530  (http://support.microsoft.com/kb/287530/ ) OL2002: Domande relative ai moduli personalizzati e alle soluzioni di Outlook

Le informazioni in questo articolo si applicano a
  • Microsoft Outlook 2002 Standard Edition
Chiavi: 
kbautomation kbhowto KB291120
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.
 

Traduzione articoli

 

Related Support Centers