TableView.GetTable 方法 (Outlook)

返回一个 Table 对象,该对象代表 TableView 对象中包含的所有 Microsoft Outlook 项目。

语法

expressionGetTable

表达 一个代表 TableView 对象的变量。

返回值

一个 中的行表示当前的表视图中的项目。

备注

对象的 GetTable 方法返回相同的存储区或跨越多个存储区,聚合视图中通过一个或多个文件夹中的项目表。 例如,汇总的视图在所有邮件项目通过搜索获得使用即时搜索。 此行为不同于获得一个 table 对象,该对象包含相同的文件夹中的项的 文件夹 对象的 GetTable 方法。

对象必须基于当前文件夹的活动资源管理器,由活动 资源管理器 对象的 CurrentFolder 属性。 如果该文件夹不可见资源管理器中的当前文件夹或由 Folder.CurrentView 属性,该文件夹的当前视图不是表格视图,则 Outlook 将返回一个错误。

结果表的筛选器设置 筛选器 属性的 对象。 如果 筛选器 属性的 对象不是空的 GetTable 会返回一个 表示筛选的项的子集,可在视图中的行。 随后,结果表调用 Table.Restrict 方法,如果应用 Restrict 方法等效于逻辑 AND 运算与筛选器由 TableView.Filter 表示。

GetTable 返回默认列设置了一个 GetTable 不会返回包含当前视图的 ViewFields 集合中每个字段的列的 。 有关基于文件夹类型的表的默认列集的详细信息,请参阅 Table 对象中显示的默认属性。 若要修改默认列集合,使用 添加删除拔出所有的列 集合对象的方法。 不能作为列添加到表的属性在 Table 对象或表筛选器中不支持的属性中列出。

结果表中行的顺序不一定与 GetTable 所基于的当前视图中项目的顺序相同。 例如,GetTable 不会返回其中包含表示视图中分组依据标题的行的表。 若要对由 GetTable 返回的表中的行进行排序,请使用 Table 对象的 Sort 方法。

GetTable 返回的 Table 对象的父对象是 对象。 对象的父对象是集合 视图视图 集合的父对象是 文件夹 对象。

示例

下面的托管代码是使用 C# 编写的。 若要运行需要调入组件对象模型 (COM) 的 .NET Framework 托管代码示例,您必须使用可定义托管接口并将其映射到对象模型类型库中的 COM 对象的互操作程序集。 对于 Outlook,您可以使用 Visual Studio 和 Outlook 主互操作程序集 (PIA)。 在您运行适用于 Outlook 2013 的托管代码示例之前,请确保您已安装了 Outlook 2013 PIA 并且已添加了对 Visual Studio 中的 Microsoft Outlook 15.0 对象库组件的引用。 应使用 Office Developer Tools for Visual Studio) 在 Outlook 外接程序 (类中使用以下代码 ThisAddIn 。 代码中的 应用程序对象必须是由 提供的受信任 Outlook ThisAddIn.Globals对象。 有关使用 Outlook PIA 开发托管 Outlook 解决方案的详细信息,请参阅欢迎使用 MSDN 上的 Outlook 主互操作程序集参考

下面的代码示例获取 对象从收件箱文件夹的当前视图。 该代码示例将当前活动的资源管理器中的文件夹设置为收件箱,然后检查收件箱的当前视图的表格视图。 之后保证这两个条件,代码示例调用 TableView.GetTable 方法,并显示所返回 中的每一行表示每个项。

private void DemoViewGetTable() 
{ 
 // Obtain the Inbox folder. 
 Outlook.Folder inbox = 
 Application.Session.GetDefaultFolder( 
 Outlook.OlDefaultFolders.olFolderInbox) 
 as Outlook.Folder; 
 
 // Set ActiveExplorer.CurrentFolder to Inbox. 
 // Inbox must be the current folder 
 // for TableView.GetTable to work correctly. 
 Application.ActiveExplorer().CurrentFolder = inbox; 
 
 // Ensure that the current view is a table view. 
 if (inbox.CurrentView.ViewType == 
 Outlook.OlViewType.olTableView) 
 { 
 Outlook.TableView view = 
 inbox.CurrentView as Outlook.TableView; 
 
 // No arguments are needed for View.GetTable. 
 Outlook.Table table = view.GetTable(); 
 
 Debug.WriteLine("View Count=" 
 + table.GetRowCount().ToString()); 
 while (!table.EndOfTable) 
 { 
 // First row in Table. 
 Outlook.Row nextRow = table.GetNextRow(); 
 Debug.WriteLine(nextRow["Subject"] 
 + " Modified: " 
 + nextRow["LastModificationTime"]); 
 } 
 } 
} 

另请参阅

表对象

如何: 搜索和获取聚合视图中的项目

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。