Freigeben über


Verweisen auf in einem Ordner vorhandene Elemente

Es gibt eine Reihe von Möglichkeiten, mit denen Sie mithilfe von Microsoft Visual Basic Verweise auf in einem Ordner vorhandene Elemente herstellen können. Diese Seite enthält Informationen zu den folgenden Themen:

  • Verwenden einer - oder For Each … Next -For … NextSchleife

  • Verwenden der Items -Auflistung

  • Verwenden der Find -Methode

  • Verwenden der Restrict -Methode

Verwenden einer "For...Next"- oder "For Each...Next"-Schleife

Eine typische Anwendung dieser Anweisungen besteht darin, alle Elemente eines Ordners zu durchlaufen. Die Items -Auflistung enthält alle Elemente eines bestimmten Ordners, und Sie können festlegen, auf welches Element ein Verweis hergestellt wird, indem Sie einen Index der Items -Auflistung verwenden. Dieser wird in der Regel mit dem Programmierkonstrukt For i = 1 to n verwendet.

Verwenden Sie For Each...Next , um die Elemente in der Auflistung ohne Angabe eines Indexes zu durchlaufen. Beide Vorgehensweisen führen zu demselben Ergebnis.

In den folgenden Beispielen wird verwendet For…Next , um alle Kontakte im Ordner Kontakte zu durchlaufen und das Feld Vollständiger Name in einem Dialogfeld anzuzeigen.

' Microsoft Visual Basic for Applications code example. 
Set olns = Application.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.Restrict("[MessageClass] = 'IPM.Contact'") 
' Loop through all of the items in the folder. 
For I = 1 to NumItems 
   MsgBox MyItems(I).FullName 
Next 

' Visual Basic Scripting Edition 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.Restrict("[MessageClass] = 'IPM.Contact'") 
' Loop through all of the items in the folder. 
For I = 1 to NumItems 
   MsgBox MyItems(I).FullName 
Next

In den folgenden Beispielen wird verwendet For Each...Next , um dasselbe Ergebnis wie in den vorherigen Beispielen zu erzielen:

' Visual Basic/Visual Basic for Applications code example. 
Set olns = Application.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.Restrict("[MessageClass] = 'IPM.Contact'") 
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.Restrict("[MessageClass] = 'IPM.Contact'") 
For Each SpecificItem in MyItems 
   MsgBox SpecificItem.FullName 
Next

Verwenden der Items-Auflistung

You can also use the Items collection and specify a text string that matches the Subject field of an item. The following examples display an item in the Inbox whose subject contains "Please help on Friday!"

' Visual Basic/Visual Basic for Applications code example. 
Set olns = Application.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

Verwenden der Find-Methode

Verwenden Sie die Find -Methode, um nach einem Element in einem Ordner auf der Grundlage des Wertes einer seiner Felder zu suchen. Wenn die Suche erfolgreich ist, können Sie anschließend die FindNext -Methode verwenden, um zu überprüfen, ob weitere Elemente vorhanden sind, die dasselbe Suchkriterium erfüllen.

Die folgenden Beispiele suchen nach Aufgaben mit hoher Priorität.

' Visual Basic/Visual Basic for Applications code example. 
Set olns = Application.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

Verwenden der Restrict-Methode

Die Restrict -Methode ähnelt der Find -Methode, aber an Stelle eines einzelnen Elements gibt sie eine Auflistung von Elementen zurück, die das Suchkriterium erfüllen. Zum Beispiel können Sie diese Methode verwenden, um alle Kontakte zu finden, die bei derselben Firma arbeiten.

In den folgenden Beispielen werden alle Kontakte angezeigt, die bei Der ProseWare Corporation funktionieren:

' Automation code example. 
Set olns = Application.GetNameSpace("MAPI") 
Set MyFolder = olns.GetDefaultFolder(olFolderContacts) 
Set myItems = myFolder.Items.Restrict("[MessageClass] = 'IPM.Contact'") 
MyClause = "[CompanyName] = ""ProseWare""" 
Set MyPWItems = MyItems.Restrict(MyClause) 
For Each MyItem in MyPWItems 
   MyItem.Display 
Next
' VBScript code example. 
Set olns = Item.Application.GetNameSpace("MAPI") 
Set MyFolder = olns.GetDefaultFolder(10) 
Set myItems = myFolder.Items.Restrict("[MessageClass] = 'IPM.Contact'") 
MyClause = "[CompanyName] = ""ProseWare""" 
Set MyPWItems = MyItems.Restrict(MyClause) 
For Each MyItem in MyPWItems 
   MyItem.Display 
Next

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.