Rechercher et obtenir des éléments dans une vue agrégée (Outlook)
La méthode GetTable de l’objet TableView peut renvoyer un objet Table qui contient des éléments d’un ou de plusieurs dossiers dans le même magasin ou couvrant plusieurs magasins, dans une vue agrégée. Ceci est particulièrement utile lorsque vous souhaitez accéder à des éléments renvoyés suite à une recherche, par exemple sur tous les éléments de courrier dans une banque. Cette rubrique illustre comment utiliser la Recherche instantanée pour rechercher tous les éléments reçus en provenance du gestionnaire de l’utilisateur actif qui sont marqués comme importants, puis afficher l’objet de chaque résultat de recherche.
L’exemple de code suivant contient la GetItemsInView
méthode . GetItemsInView
Effectue d’abord quelques vérifications pour voir si l’utilisateur actuel de la session Outlook utilise le Microsoft Exchange Server, si l’utilisateur actuel dispose d’un responsable et si la recherche instantanée est opérationnelle dans le magasin par défaut de la session.
Étant donné que la recherche éventuelle s’appuie sur la méthode Search de l’objet Explorer , et que l’affichage des résultats éventuels utilise la méthode GetTable , qui est basée sur l’affichage actuel du dossier actif de l’explorateur actif, GetItemsInView
crée un explorateur, affiche la boîte de réception dans cet explorateur et configure la recherche à l’aide de cet objet Explorateur . GetItemsInView
spécifie les critères de recherche comme éléments importants du gestionnaire de l’utilisateur actuel et l’étendue de recherche comme tous les dossiers du type d’élément MailItem .
Après GetItemsInView
avoir appelé la méthode Explorer.Search , tous les résultats de recherche sont affichés dans cet explorateur, y compris les éléments d’autres dossiers et magasins qui répondent aux critères de recherche. GetItemsInView
obtient un objet TableView qui contient cette vue d’explorateur des résultats de la recherche. En utilisant la méthode GetTable de cet objet TableView , GetItemsInView
obtient ensuite un objet Table qui contient les éléments agrégés retournés par la recherche. Enfin, GetItemsInView
affiche la colonne objet de chaque ligne de l’objet Table qui représente un élément dans les résultats de la recherche.
Le code managé suivant est écrit dans C#. Pour exécuter un exemple de code managé .NET Framework qui doit appeler un modèle COM (Component Object Model), vous devez utiliser un assembly d’interopérabilité qui définit et mappe des interfaces managées avec des objets COM dans la bibliothèque de types de modèle objet. Pour Outlook, vous pouvez utiliser Visual Studio et l’assembly d’interopérabilité de base (PIA) d’Outlook. Avant d’exécuter des exemples de code managé pour Outlook 2013, assurez-vous que vous avez installé le PIA d’Outlook 2013 et que vous avez ajouté une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 dans Visual Studio.
Utilisez le code suivant dans la ThisAddIn
classe d’un complément Outlook (à l’aide des Outils de développement Office pour Visual Studio). L'objet Application dans le code doit être un objet Application Outlook approuvé fourni par ThisAddIn.Globals
. Pour plus d’informations sur l’utilisation de l’assembly PIA Outlook pour développer des solutions Outlook managées, consultez la référence de l’assembly d’interopérabilité principal Outlook.
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"]);
}
}
}
}
}
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.