【问题标题】:Is it possible to get selected cells in Microsoft.Office.Interop.PowerPoint.Table?是否可以在 Microsoft.Office.Interop.PowerPoint.Table 中获取选定的单元格?
【发布时间】:2011-10-04 14:30:40
【问题描述】:
我在 powerpoint 文档中有一个表格
(表格类型:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint.table.aspx)
我想要实现的是获取用户选择的单元格集合。
如果 myPres.Application.ActiveWindow.Selection.ShapeRange.Type == Microsoft.Office.Core.MsoShapeType.msoTable
然后我可以通过以下方式获取选定的表:
myPres.Application.ActiveWindow.Selection.ShapeRange.Table
属性,但我看不到是否有任何关于选定单元格的信息。
更新:
正如@SteveRindsberg 在下面指出的,我应该提到我正在使用的办公版本。就我而言,它是 Office 2007。
我的问题的最短答案(再次感谢@SteveRindsberg)是:每个单元格都有 Selected 布尔属性
【问题讨论】:
标签:
c#
powerpoint
office-interop
office-2007
【解决方案1】:
提及您正在使用的 PowerPoint 版本总是一个好主意,因为从一个版本到下一个版本,有些东西(其中的表格)在主要方面发生了变化。
这里有一些提示可能会有所帮助:
如果用户选择了多个单元格,ActiveWindow.Selection.Type 将 = ppSelectionShapes
要确定选择了哪些单元格,请遍历表中的所有单元格并测试每个单元格的 .Selected 属性。
如果用户在单元格中选择了文本或只是在单元格中单击,ActiveWindow.Selection.Type 将 = ppSelectionText
ActiveWindow.Selection.TextRange.Text 为您提供选定的文本,但在 PPT 2007 及更高版本中,OM 已损坏。您应该能够从那里沿着 .Parent 链向上到达父单元格或形状,但您不能。但是,您仍然可以遍历单元格并查找 .Selected = True 的单元格。