【问题标题】:Access active slide / access active shape on slide in PowerPoint - VSTO在 PowerPoint 中访问活动幻灯片/访问幻灯片上的活动形状 - VSTO
【发布时间】:2012-01-24 12:17:27
【问题描述】:

有没有办法使用 VSTO 访问 PowerPoint 演示文稿中当前活动的幻灯片?如果我能获得当前活动的形状,那也很好。我知道如何遍历幻灯片/形状,但我找不到任何属性来确定幻灯片/形状是否处于活动状态:

        foreach (Slide slide in presentation.Slides)
        {
            foreach (Shape shape in slide.Shapes)
            {
            }
        }

【问题讨论】:

    标签: vsto powerpoint


    【解决方案1】:

    查看 .Selection 对象。

    它有一个 .Type 属性,告诉你选择了什么。如果是 SlideRange,则选择可能是一张或多张幻灯片;如果 > 1,则由您决定要做什么,但如果为 1,则 .Selection.SlideRange(1) 会为您提供对所选幻灯片的引用。

    .Type 可能返回 ShapeRange,在这种情况下,如果选择了多个形状,您将使用 .Selection.ShapeRange(1) 来获取当前形状或范围内的第一个形状。形状的 .Parent 属性返回对该形状所在幻灯片的引用(幻灯片、母版、布局等)。

    如果 .Type 返回 TextRange,你必须在父链上走几步; text 的父级是 textrange,textrange 的父级是包含形状,形状的父级是形状所在的幻灯片。

    这在 PowerPoint 2007 的某些版本中可能会崩溃(我记得它在 SP1 或 2 之前已损坏),并且在 2010 年选择表格中的文本时仍会损坏。您可以操作文本,可以访问包含文本的形状的某些属性,但不是全部,并且您不能爬上 .Parent 阶梯到幻灯片。

    【讨论】:

    • Globals.ThisAddIn.Application.ActiveWindow.Selection - 确实 :) 你让我很开心 :) 非常感谢!您能否也看看我正在处理的另一个问题? :stackoverflow.com/questions/8993376/…
    • 去过那里。做到了。佩戴“标签!尊重他们!” T 恤。
    • 这一切都很好,直到您在执行此操作时遇到此异常 - 选择(未知成员):无效请求。当前未选择任何合适的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多