VBA 居中文本框

VBA center TextBox

我想在所有幻灯片中将文本框居中,如图片请帮助我。我尝试了这段代码,但它们不起作用

Sub use2()
Set myDocument = ActivePresentation.SlideMaster
With myDocument.Shapes(1)
    .TextFrame.HorizontalAnchor = msoAnchorCenter
    .TextFrame.VerticalAnchor = msoAnchorMiddle
End With
End Sub

只有当形状在母版幻灯片上时才有效。如果形状在普通幻灯片上,您需要引用该幻灯片,例如通过其索引或 ID。

所以

Set myDocument = ActivePresentation.Slides(1)

Set myDocument = ActivePresentation.Slides("name of slide")

有一个 for-loop 以防你有多个形状必须居中的幻灯片。确保形状的 NameIndex 在所有幻灯片中都相同。

编辑:我误解并认为 OP 希望文本水平和垂直居中。他们希望形状与幻灯片的中心对齐。我在这里适当地编辑了代码:

Sub CenterTextBox()

For i = 1 to 10 'slidenumbers
On Error Resume Next
With ActivePresentation.Slides(i).Shapes("shapename")
   .Left = (ActivePresentation.PageSetup.SlideWidth - .Width) / 2
   .Top = (ActivePresentation.PageSetup.SlideHeight - .Height) / 2
End With
Next i

End Sub