【发布时间】:2021-08-06 23:13:58
【问题描述】:
我在 PowerPoint (office 360) 上使用 VBA 对齐形状时遇到问题。
我知道我可以使用 .Shapes.Range.Align msoAlignBottom, msoFalse 但我不明白如何使它与特定的形状名称一起工作,因为我总是有错误或什么都没有发生。
这是我要实现此操作的代码:
Sub FixFitToShape()
Dim oSl As Slide
Dim sn As String
Dim oSh As Shape
sn = InputBox("Enter the name of the shape")
On Error Resume Next
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.Name = sn Then
Select Case oSh.PlaceholderFormat.Type
Case 1, 3 'Title
oSh.TextFrame2.AutoSize = msoAutoSizeTextToFitShape ' OR msoAutoSizeNone
Case 2, 7 'Text / Content
oSh.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
oSh.Shapes.Range.Align msoAlignBottom, msoTrue
End Select
End If
Next oSh
Next oSl
End Sub
非常感谢您的帮助,
【问题讨论】:
-
请具体说明您要做什么:1) 在每张幻灯片上找到一个图形,并将该幻灯片上的其他图形与您找到的图形对齐,2) 在每张幻灯片上找到相同的所有图形命名并对齐它们,3)将所有幻灯片上的所有同名图形与第一个图形对齐,4)另一个选项
-
感谢您的回复。我只需要 sn 定义的具有相同名称的每个形状都与其幻灯片的底部对齐。我需要在 msoAutoSizeTextToFitShape 或 msoAutoSizeShapeToFitText 处理之后对齐形状
标签: vba alignment powerpoint