gpt4 book ai didi

vsto - 如何确定占位符正在使用中?

转载 作者:行者123 更新时间:2023-12-01 04:17:29 26 4
gpt4 key购买 nike

给定一张幻灯片,如何确定是否所有幻灯片布局占位符都在 PowerPoint 中使用?

如果占位符未使用,可以在添加图片时阻止自动使用占位符吗?

最佳答案

您需要遍历幻灯片上的所有占位符,确定每个占位符的类型,然后检查它是否填充了预期的格式。有18个 PpPlaceholderType ,因此您必须将它们全部设置好,但以下是您可以执行哪些操作来检查占位符是否正在使用的示例。

Sub CheckPlaceholders()
Dim ap As Presentation: Set ap = ActivePresentation
Dim sl As Slide: Set sl = ap.Slides(2)
Dim shs As Shapes: Set shs = sl.Shapes
Dim ph As Placeholders: Set ph = shs.Placeholders
Dim p As Shape
For Each p In ph
Select Case p.Type
Case PpPlaceholderType.ppPlaceholderHeader
If p.TextFrame.HasText Then
Debug.Print "This Placeholder is in use"
End If
Case PpPlaceholderType.ppPlaceholderChart
If p.HasChart Then
Debug.Print "This Placeholder is in use"
End If
End Select
Next
End Sub

例如,要插入一张图片而不让它到达占位符,我发现的唯一方法是创建一个循环来添加图片,直到其中一张图片超出占位符,然后删除已经插入的图片。
Sub AddPicture()
Dim pic As String
pic = "C:\Users\Me\Desktop\beigeplum.jpg"
Dim ap As Presentation: Set ap = ActivePresentation
Dim sl As Slide: Set sl = ap.Slides(1)
Dim sh As Shape

Do
Set sh = sl.Shapes.AddPicture(pic, msoFalse, msoTrue, 1, 1)
sh.Tags.Add "MYPICTURE", 0
Loop Until sh.Type <> 14

Dim p As Shape
For Each p In sl.Shapes
If p.Type = 14 Then
If p.Tags.count > 0 Then
If p.Tags.Name(1) = "MYPICTURE" Then
p.Delete
End If
End If
End If
Next
End Sub

关于vsto - 如何确定占位符正在使用中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com