Можно ли получить выделенные ячейки в Microsoft.Office.Interop.PowerPoint.Table? - PullRequest
0 голосов
/ 13 июля 2011

У меня есть таблица в документе PowerPoint (тип таблицы: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint.table.aspx)

Чего я хочу добиться, так это получить набор ячеек, выбранных пользователем. if myPres.Application.ActiveWindow.Selection.ShapeRange.Type == Microsoft.Office.Core.MsoShapeType.msoTable

Тогда я могу получить выбранную таблицу через: myPres.Application.ActiveWindow.Selection.ShapeRange.Table свойство, но я не могу видеть, есть ли какая-либо информация относительно выбранных ячеек.

UPDATE:

Как указал @SteveRindsberg ниже, я должен упомянуть, какую офисную версию я использую. Это Office 2007 в моем случае. Самый короткий ответ (снова благодаря @SteveRindsberg) на мой вопрос: каждая ячейка имеет выбранное логическое свойство

1 Ответ

2 голосов
/ 13 июля 2011

Всегда полезно упомянуть, с какой версией PowerPoint вы работаете, поскольку некоторые вещи (среди них таблицы) существенно изменились с одной версии на другую.

Вот несколько советов, которые могут помочь:

Если пользователь выбрал несколько ячеек, ActiveWindow.Selection.Type will = ppSelectionShapes Чтобы определить, какие ячейки выбраны, выполните итерацию по всем ячейкам.в таблице и проверьте каждое свойство .Selected.

Если пользователь выделил текст в ячейке или просто щелкнул внутри ячейки, ActiveWindow.Selection.Type will = ppSelectionText

ActiveWindow.Selection.TextRange.Text дает вам выделенный текст, но в PPT 2007 и далее, OM сломан.Вы должны быть в состоянии пройти по цепочке .Parent оттуда, чтобы добраться до родительской ячейки или фигуры, но вы не можете.Однако вы все еще можете перебирать ячейки и искать тот, где .Selected = True.

...