TableView.GetTable 方法 (Outlook)
返回一个 Table 对象,该对象代表 TableView 对象中包含的所有 Microsoft Outlook 项目。
语法
expression。 GetTable
表达 一个代表 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。