Freigeben über


Suchen und Abrufen von Elementen in einer aggregierten Ansicht (Outlook)

Die GetTable-Methode des TableView-Objekts kann ein Table-Objekt zurückgeben, das Elemente aus einem oder mehreren Ordnern im selben Speicher oder über mehrere Speicher in einer aggregierten Ansicht enthält. Dies ist vor allem dann sinnvoll, wenn Sie auf die von einer Suche zurückgegebenen Elemente zugreifen möchten, z. B. bei einer Suche nach allen E-Mail-Elementen in einem Informationsspeicher. Dieses Thema enthält ein Beispiel, wie die Sofortsuche zur Suche nach allen Elementen verwendet werden kann, die vom Vorgesetzten des aktuellen Benutzers als wichtig markiert wurden, und zeigt dann den Betreff jedes Suchergebnisses an.

Das folgende Codebeispiel enthält die GetItemsInView -Methode. GetItemsInViewführt zunächst einige Überprüfungen durch, um festzustellen, ob der aktuelle Benutzer der Outlook-Sitzung die Microsoft Exchange Server verwendet, ob der aktuelle Benutzer über einen Vorgesetzten verfügt und ob die Sofortsuche im Standardspeicher der Sitzung betriebsbereit ist.

Da die letztliche Suche auf der Search-Methode des Explorer-Objekts basiert und die letztliche Ergebnisanzeige die GetTable-Methode verwendet, die auf der aktuellen Ansicht des aktuellen Ordners des aktiven Explorers basiert, GetItemsInView erstellt einen Explorer, zeigt den Posteingang in diesem Explorer an und richtet die Suche mithilfe dieses Explorer-Objekts ein. GetItemsInView gibt die Suchkriterien als wichtige Elemente aus dem Manager des aktuellen Benutzers und den Suchbereich als alle Ordner des MailItem-Elementtyps an.

Nach dem GetItemsInView Aufrufen der Explorer.Search-Methode werden alle Suchergebnisse in diesem Explorer angezeigt, einschließlich Elementen aus anderen Ordnern und Speichern, die den Suchkriterien entsprechen. GetItemsInView ruft ein TableView-Objekt ab, das diese Explorer-Ansicht der Suchergebnisse enthält. Mithilfe der GetTable-Methode dieses TableView-Objekts wird dann ein Table-Objekt abgerufen, GetItemsInView das die aggregierten Elemente enthält, die von der Suche zurückgegeben werden. Zeigt schließlich GetItemsInView die Betreffspalte jeder Zeile des Table-Objekts an, die ein Element in den Suchergebnissen darstellt.

Der folgende verwaltete Code ist in C# geschrieben. Um ein verwaltetes Codebeispiel von .NET Framework auszuführen, das ein Component Object Model (COM) aufrufen muss, müssen Sie eine Interopassembly verwenden, die verwaltete Schnittstellen definiert und den COM-Objekten in der Object Model-Typbibliothek zuordnet. Für Outlook können Sie Visual Studio und die Outlook Primary Interop Assembly (PIA) verwenden. Stellen Sie sicher, dass Sie die Outlook 2013 PIA installiert und eine Referenz zur Microsoft Outlook 15.0-Objektbibliothekkomponente in Visual Studio hinzugefügt haben, bevor Sie verwaltete Codebeispiele für Outlook 2013 ausführen.

Verwenden Sie den folgenden Code in der ThisAddIn Klasse eines Outlook-Add-Ins (mit Office Developer Tools für Visual Studio). Das Objekt der Anwendung im Code muss ein vertrauenswürdiges Outlook- Anwendungsobjekt sein, das von ThisAddIn.Globals bereitgestellt wird. Weitere Informationen zur Verwendung der Outlook-PIA zum Entwickeln verwalteter Outlook-Lösungen finden Sie in der Referenz zur primären Outlook-Interopassembly.

private void GetItemsInView() 
{ 
    Outlook.AddressEntry currentUser = 
        Application.Session.CurrentUser.AddressEntry; 
 
    // Check if the current user uses the Exchange Server. 
    if (currentUser.Type == "EX") 
    { 
        Outlook.ExchangeUser manager = 
            currentUser.GetExchangeUser().GetExchangeUserManager(); 
 
        // Check if the current user has a manager. 
        if (manager != null) 
        { 
            string managerName = manager.Name; 
 
            // Check if Instant Search is enabled and operational in the default store. 
            if (Application.Session.DefaultStore.IsInstantSearchEnabled) 
            { 
                Outlook.Folder inbox = 
                    Application.Session.GetDefaultFolder( 
                    Outlook.OlDefaultFolders.olFolderInbox); 
 
                // Create a new explorer to display the Inbox as 
                // the current folder. 
                Outlook.Explorer explorer = 
                    Application.Explorers.Add(inbox, 
                    Outlook.OlFolderDisplayMode.olFolderDisplayNormal); 
 
                // Make the new explorer visible. 
                explorer.Display; 
 
                // Search for items from the manager marked important,
                // from all folders of the same item type as the current folder,
                // which is the MailItem item type. 
                string searchFor = 
                    "from:" + "\"" + managerName  
                    + "\"" + " importance:high"; 
                explorer.Search(searchFor, 
                    Outlook.OlSearchScope.olSearchScopeAllFolders); 
 
                // Any search results are displayed in that new explorer 
                // in an aggregated table view. 
                Outlook.TableView tableView =  
                    explorer.CurrentView as Outlook.TableView; 
 
                // Use GetTable of that table view to obtain items in that 
                // aggregated view in a Table object. 
                Outlook.Table table = tableView.GetTable(); 
                while (!table.EndOfTable) 
                { 
                    // Then display each row in the Table object 
                    // that represents an item in the search results. 
                    Outlook.Row nextRow = table.GetNextRow(); 
                    Debug.WriteLine(nextRow["Subject"]); 
                } 
            } 
        } 
    } 
} 

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.