Identificativo articolo: 290804 - Ultima modifica: giovedì 23 novembre 2006 - Revisione: 4.1

Esempi di programmazione per fare riferimento a elementi e cartelle in Outlook 2002

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

In questa pagina

Espandi tutto | Chiudi tutto

Sommario

Il modello a oggetti di Microsoft Outlook viene in genere utilizzato per accedere a diversi tipi di elementi nelle cartelle. In questo articolo viene fornita una panoramica dei diversi metodi, proprietà e oggetti utilizzabili per fare riferimento a elementi e cartelle di Outlook.

Nel presente articolo vengono discussi i seguenti argomenti:

Riferimenti a cartelle esistenti
  • Metodo GetDefaultFolder
  • Oggetto Folders
  • Proprietà Parent
  • Metodo GetSharedDefaultFolder
  • Metodo GetFolderFromID
Creazione di nuove cartelle e aggiunta di riferimenti
  • Metodo Folders.Add
Creazione di nuovi elementi e aggiunta di riferimenti
  • Metodo CreateItem
  • Metodo Items.Add
  • Metodo CreateItemFromTemplate
Riferimenti a elementi esistenti
  • Utilizzo di Items(I) o di For Each...Next
  • Utilizzo di Items("This is the subject")
  • Metodo Find
  • Metodo Restrict
  • Metodo GetItemFromID

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/default.aspx?scid=fh;IT;CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;it;cntactms)
NOTA: nel codice Visual Basic, Scripting Edition (VBScript) è necessario utilizzare il valore numerico delle costanti definite nella libreria di oggetti di Outlook. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
285202  (http://support.microsoft.com/kb/285202/ ) OL2002: Elenco delle costanti del modello a oggetti di Outlook

Riferimenti a cartelle esistenti

Metodo GetDefaultFolder:

Le cartelle predefinite sono quelle allo stesso livello della Posta in arrivo in cui vengono ricevuti i messaggi. Se il profilo prevede più cartelle Posta in arrivo, premere CTRL+MAIUSC+I per selezionare quella predefinita. Le cartelle predefinite sono quelle utilizzate più di frequente dalla maggior parte degli utenti, ad esempio le cartelle Calendario, Contatti e Attività. È possibile fare agevolmente riferimento a queste cartelle utilizzando il metodo GetDefaultFolder. GetDefaultFolder necessita di un solo argomento, ossia il tipo di cartella a cui si desidera fare riferimento. Negli esempi riportati di seguito la variabile oggetto MyFolder viene assegnata alla cartella Contatti predefinita:

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(10)
				

Oggetto Folders

È possibile utilizzare l'oggetto Folders per fare riferimento a qualsiasi cartella visibile nell'elenco delle cartelle di Outlook. Questo oggetto viene in genere utilizzato per fare riferimento a una cartella pubblica di Exchange o a qualsiasi altra cartella non predefinita di Outlook.

Negli esempi che seguono viene spiegato come fare riferimento a una cartella pubblica denominata "My Public Folder". Si noti che in genere si inizia con la cartella superiore fino a giungere a quella a cui fare riferimento. Tenere inoltre presente che i nomi delle cartelle fanno distinzione tra maiuscole e minuscole e devono corrispondere esattamente a quelli dell'elenco delle cartelle di Outlook.
' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyFolder1 = olns.Folders("Public Folders")
Set MyFolder2 = MyFolder1.Folders("All Public Folders")
Set MyFolder3 = MyFolder2.Folders("My Public Folder")
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyFolder1 = olns.Folders("Public Folders")
Set MyFolder2 = MyFolder1.Folders("All Public Folders")
Set MyFolder3 = MyFolder2.Folders("My Public Folder")
				
Negli esempi che seguono viene spiegato come fare riferimento a una cartella denominata "Business Tasks", ovvero a una sottocartella della cartella Attività predefinita.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(olFolderTasks)
Set MyFolder = MyTasksFolder.Folders("Business Tasks")
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(13)
Set MyFolder = MyTasksFolder.Folders("Business Tasks")
				

Proprietà Parent

Se si dispone già di un riferimento a un elemento o a una cartella di Outlook, è possibile utilizzare la proprietà Parent per creare un riferimento all'elemento o alla cartella in cui è inserito.

Gli esempi riportati di seguito consentono di restituire il nome di una cartella per un elemento specifico:

' Automation code example.
Set ol = New Outlook.Application
Set MyItem = ol.CreateItem(olMailItem) ' Create new item.
MyItem.Save                            ' Save it to Drafts.
Set MyFolder = MyItem.Parent           ' MyFolder = Drafts.
				

' VBScript code example.
' Returns the folder of the current item.
Set MyFolder = Item.Parent
				

GetSharedDefaultFolder

È possibile utilizzare questo metodo se sono state ricevute autorizzazioni delegate per una delle cartelle predefinite di un altro utente.

Per ulteriori informazioni sull'accesso alle cartelle di altri utenti, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito:
290824  (http://support.microsoft.com/kb/290824/ ) OL2002: Apertura del calendario o di un'altra cartella di un altro utente

Il metodo GetSharedDefaultFolder viene utilizzato allo stesso modo di GetDefaultFolder, tuttavia in questo caso è necessario specificare un altro argomento, ovvero il nome della cartella dell'altro utente a cui fare riferimento. Questo esempio consente di risolvere il nome dell'altro utente in modo da verificare che si tratti di un nome valido ed utilizzabile con il metodo GetSharedDefaultFolder.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set myRecipient = olns.CreateRecipient("John Smith")
myRecipient.Resolve
If myRecipient.Resolved Then
   Set JohnFolder=olns.GetSharedDefaultFolder _
      (myRecipient, olFolderContacts)
End If
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set myRecipient = olns.CreateRecipient("John Smith")
myRecipient.Resolve
If myRecipient.Resolved Then
   Set JohnFolder = olns.GetSharedDefaultFolder(myRecipient, 10)
End If
				

GetFolderFromID

Questo metodo viene in genere utilizzato in soluzioni più complesse in cui una soluzione tiene traccia dei valori StoreID ed EntryID di una cartella in modo da farvi più agevolmente riferimento in un secondo momento.

Per ulteriori informazioni sull'utilizzo del metodo GetFolderFromID, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
293152  (http://support.microsoft.com/kb/293152/ ) OL2002: Programmazione con gli EntryID e gli StoreID

Creazione di nuove cartelle e aggiunta di riferimenti

Metodo Folders.Add

L'utilizzo del metodo Add nell'insieme Folders consente di creare una nuova cartella. Il primo argomento consente di specificare il nome della cartella, mentre il secondo il tipo. Il codice riportato di seguito aggiunge la sottocartella Business Tasks alla cartella Attività predefinita. Poiché il tipo di cartella non viene specificato, verrà ereditato il tipo della cartella principale.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(olFolderTasks)
Set MyNewFolder = MyTasksFolder.Folders.Add("Business Tasks")
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(13)
Set MyNewFolder = MyTasksFolder.Folders.Add("Business Tasks")
				

Creazione di nuovi elementi e aggiunta di riferimenti

Metodo CreateItem

Il metodo CreateItem consente di creare un nuovo elemento predefinito di Outlook. Se è necessario creare un elemento basato su un modulo personalizzato già creato, utilizzare il metodo Items.Add riportato di seguito. Il metodo CreateItem è posizionato all'esterno dell'oggetto applicazione di livello superiore nel modello a oggetti di Outlook. Questo metodo prevede un solo argomento, ovvero una costante che indica il tipo di elemento da creare.

' Automation code example.
Set ol = New Outlook.Application
Set MyTaskItem = ol.CreateItem(olTaskItem)
MyTaskItem.Display
				

   ' VBScript code example.
   Set MyTasktem = Item.Application.CreateItem(3)
   MyTaskItem.Display
				

Metodo Items.Add

L'utilizzo del metodo Add nell'insieme Items consente di creare un nuovo elemento basato su qualsiasi classe di messaggio, sia che si tratti di una classe di messaggio predefinita di Outlook, quale IPM.Contact, oppure di una classe di messaggio per un modulo personalizzato, quale IPM.Contact.MyForm. Per poter utilizzare il metodo Items.Add, è necessario fare dapprima riferimento alla cartella in cui creare un nuovo elemento.

Per ulteriori informazioni sulle classi di messaggio, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito:
290657  (http://support.microsoft.com/kb/290657/ ) OL2002: Utilizzo delle definizioni di modulo e moduli One-Off
290659  (http://support.microsoft.com/kb/290659/ ) OL2002: Aggiornamento degli elementi esistenti per l'utilizzo di un nuovo modulo personalizzato

Negli esempi che seguono il metodo Items.Add viene utilizzato per creare un nuovo elemento basato su un modulo contatto personalizzato denominato MyForm:

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(olFolderContacts)
Set MyItem = MyFolder.Items.Add("IPM.Contact.MyForm")
MyItem.Display
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(10)
Set MyItem = MyFolder.Items.Add("IPM.Contact.MyForm")
MyItem.Display
				

Negli esempi che seguono il metodo Items.Add viene utilizzato per creare un nuovo elemento contatto predefinito:
' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(olFolderContacts)
Set MyItem = MyFolder.Items.Add
MyItem.Display
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(10)
Set MyItem = MyFolder.Items.Add
MyItem.Display
				

NOTA: se si utilizza il metodo Items.Add, non ha importanza quale sia il modulo predefinito per la cartella. È possibile specificare qualsiasi classe di messaggio valida purché pubblicata nella cartella o nella libreria moduli personale o organizzazione.

Metodo CreateItemFromTemplate

Utilizzare il metodo CreateItemFromTemplate per creare un nuovo elemento basato su un formato di file modello di Outlook (OFT) o di file MSG. Poiché la maggior parte dei moduli è pubblicata in una cartella o in una libreria di moduli, questo metodo non viene in genere utilizzato. Potrebbe essere necessario utilizzare questo metodo se si intende creare un programma di installazione di Microsoft Visual Basic per installare moduli per una soluzione Outlook. Ciò può rivelarsi utile per coloro che non dispongono di accesso alla rete o lavorano non in linea in Outlook. Il programma Visual Basic consente di effettuare quanto segue:

  • Automatizzare Outlook.
  • Utilizzare CreateItemFromTemplate per aprire un modulo da una condivisione di rete o da un disco.
  • Con il modello a oggetti di Outlook, pubblicare il modulo per utilizzi successivi.
    ' Automation code example.
    Set ol = New Outlook.Application
    Set olns = ol.GetNameSpace("MAPI")
    ' Set MyFolder to the default contacts folder.
    Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
    ' Set MyItem to an .oft file on a floppy disk.
    Set MyItem = ol.CreateItemFromTemplate("A:\Contact.oft")
    ' Set MyForm to the item Form Description for publishing.
    Set MyForm = MyItem.FormDescription
    ' Name the form, which also sets its message class.
    MyForm.Name = "My Contact"
    ' Publish the folder to the Contacts folder.
    MyForm.PublishForm olFolderRegistry, MyFolder
    ' Close and do not save changes to the item.
    MyItem.Close olDiscard
    					

Riferimenti a elementi esistenti

Utilizzo di Items(I) o di For Each...Next

In genere questi approcci vengono utilizzati per eseguire il ciclo di tutti gli elementi di una cartella. L'insieme Items contiene tutti gli elementi di una data cartella ed è possibile specificare gli elementi a cui fare riferimento utilizzando un indice con l'insieme Items. Tale soluzione viene in genere utilizzata con il costrutto di programmazione For I = 1 to n.

È possibile utilizzare il costrutto di programmazione For Each...Next per eseguire il ciclo di tutti gli elementi dell'insieme senza specificare un indice. Entrambi gli approcci consentono di ottenere lo stesso risultato.

Negli esempi che seguono viene utilizzato l'approccio Items(I) per eseguire il ciclo di tutti i contatti della cartella dei contatti e visualizzare il campo FullName relativo al nome in una finestra di dialogo.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
' Get the number of items in the folder.
NumItems = MyFolder.Items.Count
' Set MyItem to the collection of items in the folder.
Set MyItems = MyFolder.Items
' Loop through all of the items in the folder.
For I = 1 to NumItems
   MsgBox MyItems(I).FullName
Next
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(10)
' Get the number of items in the folder.
NumItems = MyFolder.Items.Count
' Set MyItem to the collection of items in the folder.
Set MyItems = MyFolder.Items
' Loop through all of the items in the folder.
For I = 1 to NumItems
   MsgBox MyItems(I).FullName
Next
				

Negli esempi che seguono viene utilizzato il costrutto For Each...Next per ottenere lo stesso risultato degli esempi precedenti:

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
' Set MyItems to the collection of items in the folder.
Set MyItems = MyFolder.Items
For Each SpecificItem in MyItems
   MsgBox SpecificItem.FullName
Next
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(10)
' Set MyItem to the collection of items in the folder.
Set MyItems = MyFolder.Items
For Each SpecificItem in MyItems
   MsgBox SpecificItem.FullName
Next
				

Utilizzo di Items

È anche possibile utilizzare l'insieme Items e specificare una stringa di testo che corrisponda al campo dell'oggetto di un elemento. Si tratta di un approccio non utilizzato comunemente.

Gli esempi riportati di seguito consentono di visualizzare un elemento della Posta in arrivo, il cui oggetto contiene le parole "Please help on Friday!"

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
' Set MyFolder to the default Inbox.
Set MyFolder = olns.GetDefaultFolder(olFolderInbox)
Set MyItem = MyFolder.Items("Please help on Friday!")
MyItem.Display
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
' Set MyFolder to the default Inbox.
Set MyFolder = olns.GetDefaultFolder(6)
Set MyItem = MyFolder.Items("Please help on Friday!")
MyItem.Display
				

Metodo Find

Utilizzare il metodo Find per ricercare un elemento in una cartella sulla base del valore di uno dei campi. Se il metodo Find sortisce esito positivo, è poi possibile utilizzare il metodo FindNext per verificare la presenza di altri elementi che soddisfano gli stessi criteri di ricerca.

Gli esempi riportati di seguito consentono di verificare la presenza di appuntamenti con priorità elevata.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set myFolder = olns.GetDefaultFolder(olFolderTasks)
Set MyTasks = myFolder.Items
' Importance corresponds to Priority on the task form.
Set MyTask = MyTasks.Find("[Importance] = ""High""")
If MyTask Is Nothing Then ' the Find failed
   MsgBox "Nothing important. Go party!"
Else
   MsgBox "You have something important to do!"
End If
				

' VBScript code example.
Set olns = Item.Application.GetNamespace("MAPI")
Set myFolder = olns.GetDefaultFolder(13)
Set MyTasks = myFolder.Items
' Importance corresponds to Priority on the task form.
Set MyTask = MyTasks.Find("[Importance] = ""High""")
If MyTask Is Nothing Then ' the Find failed
   MsgBox "Nothing important. Go party!"
Else
   MsgBox "You have something important to do!"
End If
				

Metodo Restrict

Il metodo Restrict è simile al metodo Find, ma invece di restituire un singolo elemento, restituisce un insieme di elementi che soddisfano i criteri di ricerca. È ad esempio possibile utilizzare questo metodo per individuare tutti i contatti che lavorano per la stessa società.

Gli esempi riportati di seguito consentono di visualizzare tutti i contatti che lavorano per la ACME Software:

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
Set MyItems = MyFolder.Items
MyClause = "[CompanyName] = ""ACME Software"""
Set MyACMEItems = MyItems.Restrict(MyClause)
For Each MyItem in MyACMEItems
   MyItem.Display
Next
				

' VBScript code example.
' Requires VBScript version 2.0 or later.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(10)
Set MyItems = MyFolder.Items
MyClause = "[CompanyName] = ""ACME Software"""
Set MyACMEItems = MyItems.Restrict(MyClause)
For Each MyItem in MyACMEItems
   MyItem.Display
Next
				
Per ulteriori informazioni sull'utilizzo del metodo Restrict, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito:
291161  (http://support.microsoft.com/kb/291161/ ) OL2002: Utilizzo dei metodi Find e Restrict per il recupero di elementi

Metodo GetItemFromID

Questo metodo viene in genere utilizzato in soluzioni più complesse in cui una soluzione tiene traccia dei valori StoreID ed EntryID di un elemento in modo da poterlo recuperare più velocemente in un secondo momento.

Per ulteriori informazioni sull'utilizzo del metodo GetFolderFromID, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
293152  (http://support.microsoft.com/kb/293152/ ) OL2002: Programmazione con gli EntryID e gli StoreID

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: 
kbprogramming kbhowto KB290804
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