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
以防你有多个形状必须居中的幻灯片。确保形状的 Name
或 Index
在所有幻灯片中都相同。
编辑:我误解并认为 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
我想在所有幻灯片中将文本框居中,如图片请帮助我。我尝试了这段代码,但它们不起作用
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
以防你有多个形状必须居中的幻灯片。确保形状的 Name
或 Index
在所有幻灯片中都相同。
编辑:我误解并认为 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