【问题标题】:C# PowerPoint Interop: Get default text of a placeholder textboxC# PowerPoint 互操作:获取占位符文本框的默认文本
【发布时间】:2014-02-06 01:33:09
【问题描述】:

有谁知道如何在 powerpoint 中获取占位符形状的默认文本?

我在母版中使用默认文本(“在此处输入一些文本...”)定义了一个占位符文本形状。

可以覆盖演示文稿幻灯片中的文本。

我想通过代码获取文本“在此处输入一些文本...”!!! 有人可以帮忙吗?

【问题讨论】:

    标签: c# vsto powerpoint office-interop


    【解决方案1】:

    这是完成这项工作的 VBA。语言翻译留给精明的读者作为练习:

    Dim osh As Shape
    Dim oSl As Slide
    Dim oLyt As CustomLayout
    Dim x As Long ' VBA Long, not a .NET Long!
    
    ' for demo purposes, we'll work with a placeholder shape
    ' that I've selected
    Set osh = ActiveWindow.Selection.ShapeRange(1)
    ' and in Real Life, you'd want to ensure that the
    ' shape really is a placeholder of the correct type
    
    Set oSl = osh.Parent
    Set oLyt = oSl.CustomLayout
    
    For x = 1 To oLyt.Shapes.Count
        If oLyt.Shapes(x).PlaceholderFormat.Type = osh.PlaceholderFormat.Type Then
            Debug.Print oLyt.Shapes(x).TextFrame.TextRange.Text
        End If
    Next
    

    这并不完美;它只是将您带到与您正在使用的形状具有相同占位符类型的布局上的第一个占位符。您可能在同一张幻灯片及其相应的布局上有多个占位符,在这种情况下,这可能会给您带来不正确的结果。如果您想防止这种情况发生,您可能需要测试父幻灯片上是否还有其他相同类型的占位符,如果这是第 N 个占位符,请确定 N 的值,然后在布局上找到第 N 个匹配的占位符。

    【讨论】:

    • 感谢您的回答。不幸的是,这是我需要的相反方向。我的目标是从布局中的占位符获得对幻灯片上相应占位符文本框的引用。因为没有“原生方式”,我的想法是通过占位符默认文本来获取它。但这似乎也是不可能的。无法理解为什么微软不提供任何可能性来获取布局占位符和幻灯片上的文本框之间的引用。 :-(
    • 同样的一般策略也适用于此。但是让我问一下目标是什么。
    • 我有一个布局,其中在母版中定义了占位符,并且需要基于布局的幻灯片的相应文本框,因为我必须验证这个。
    猜你喜欢
    • 2015-10-08
    • 2011-07-23
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多