【发布时间】:2014-02-06 01:33:09
【问题描述】:
有谁知道如何在 powerpoint 中获取占位符形状的默认文本?
我在母版中使用默认文本(“在此处输入一些文本...”)定义了一个占位符文本形状。
可以覆盖演示文稿幻灯片中的文本。
我想通过代码获取文本“在此处输入一些文本...”!!! 有人可以帮忙吗?
【问题讨论】:
标签: c# vsto powerpoint office-interop
有谁知道如何在 powerpoint 中获取占位符形状的默认文本?
我在母版中使用默认文本(“在此处输入一些文本...”)定义了一个占位符文本形状。
可以覆盖演示文稿幻灯片中的文本。
我想通过代码获取文本“在此处输入一些文本...”!!! 有人可以帮忙吗?
【问题讨论】:
标签: c# vsto powerpoint office-interop
这是完成这项工作的 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 个匹配的占位符。
【讨论】: