在 PowerPoint 中访问活动幻灯片/访问幻灯片上的活动形状 - VSTO

发布于 2024-12-28 19:10:01 字数 286 浏览 0 评论 0原文

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

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

Is there a way to access currently active slide in PowerPoint presentation using VSTO? Also is would be nice if I could get currently active Shape. I know how to iterate through slides / shapes, yet I can't find any property to figure out whether slide/shape is active:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

转身泪倾城 2025-01-04 19:10:01

查看 .Selection 对象。

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

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

如果 .Type 返回 TextRange,则必须沿着父链向上走几步;文本的父级是textrange,textrange的父级是包含的形状,形状的父级是形状所在的幻灯片。

这在 PowerPoint 2007 的某些版本中很容易崩溃(我记得它在 SP1 或 2 之前就被破坏了),并且在 2010 年选择表格中的文本时它仍然被破坏。您可以操纵文本,可以访问包含文本的形状的某些属性,但不是全部,并且无法爬上 .Parent 梯子到达幻灯片。

Look at the .Selection object.

It has a .Type property that tells you what's selected. If it's SlideRange, the selection might be one or more slides; up to you to decide what to do if > 1, but if 1, then .Selection.SlideRange(1) gives you a reference to the selected slide.

.Type might return ShapeRange, in which case you'd use .Selection.ShapeRange(1) to get the current shape or the first shape in the range if more than one shape is selected. The shape's .Parent property returns a reference to the slide the shape is on (slide, master, layout, whatever).

If .Type returns TextRange, you have to walk a few steps up the parent chain; the parent of text is textrange, the parent of textrange is the containing shape and the shape's parent is the slide the shape is on.

This is liable to fall apart in some versions of PowerPoint 2007 (it's broken pre SP1 or 2, as I recall), and it's still broken in 2010 when the text in a table is selected. You can manipulate the text, you can get access to some of the properties of the shape that contains the text, but not all, and you can't climb the .Parent ladder to the slide.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文