Accessing Slide object in PowerPoint add-in

﹥>﹥吖頭↗ 提交于 2019-12-21 17:54:37

问题


I'm building a add-in for PowerPoint and need to access the Slides or Slide objects, or even the whole presentation; alas, the only method I can see of doing this is to open a new ppt file. Right now I'm having to resort to the hacky method of saving the current presentation and reopening it with Packaging to manipulate anything (more specifically I'm having to SHA the Slide objects from the pptx file to see if they've changed -- not ideal)

Is there any way to open the file that is currently open in PowerPoint w/o having to IO a file?

Thanks for your help, P


回答1:


I assume you have created a PowerPoint (2007/2010) Add-In Project in VisualStudio. In general you can Access the active presentation with static class Globals this way:

Globals.ThisAddIn.Application.ActivePresentation.Slides[slideIndex] ...

Edit: Example for usage:

using PowerPoint = Microsoft.Office.Interop.PowerPoint;

...

try
{
    int numberOfSlides = Globals.ThisAddIn
        .Application.ActivePresentation.Slides.Count;

    if (numberOfSlides > 0)
    {
        // get first slide
        PowerPoint.Slide firstSlide = Globals.ThisAddIn
            .Application.ActivePresentation.Slides[0];

        // get first shape (object) in the slide
        int shapeCount = firstSlide.Shapes.Count;

        if (shapeCount > 0)
        {
            PowerPoint.Shape firstShape = firstSlide.Shapes[0];
        }

        // add a label
        PowerPoint.Shape label = firstSlide.Shapes.AddLabel(
                Orientation: Microsoft.Office.Core
                   .MsoTextOrientation.msoTextOrientationHorizontal,
                Left: 100,
                Top: 100,
                Width: 200,
                Height: 100);

        // write hello world with a slidenumber
        label.TextFrame.TextRange.Text = "Hello World! Page: ";
        label.TextFrame.TextRange.InsertSlideNumber();
    }
}
catch (Exception ex)
{
    System.Windows.Forms.MessageBox.Show("Error: " + ex);

}


来源:https://stackoverflow.com/questions/12688188/accessing-slide-object-in-powerpoint-add-in

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!