Получить выбранный объект диаграммы, текстовый фрейм или таблицу с помощью надстройки C# VSTO?

Я пытался получить текущий выбранный объект в файле PPTX для надстройки VSTO.

Я использовал приведенный ниже пакет для создания диаграммы, таблиц и текста на слайдах.

      using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;

У меня есть кнопка на панели Ribben. Как только пользователь щелкает по нему, я хочу получить текущий выбранный объект на любом слайде. Как мне это сделать? Есть ли способ присутствовать в interop

упаковка.

1 ответ

Если вы выбираете одну или несколько фигур, вы можете сделать что-то вроде этого

      if (Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Count > 0)
                {
                    //iterate over all the shapes selected by the user
                    foreach (PowerPoint.Shape shp in Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange)
                    {
                        if (shp.HasTable == Office.MsoTriState.msoTrue)
                        {
                            //Do something
                        }
                        if (shp.HasChart == Office.MsoTriState.msoTrue)
                        {
                            //Do something
                        }
                        if (shp.HasTextFrame == Office.MsoTriState.msoTrue)
                        {
                            //Do something
                        }

                        //or you could just return the shp object
                    }
                }
Другие вопросы по тегам