更改现有文本框形状的字体大小
Change fontSize of an existing TextBox Shape
我的 Word 文档中有一个文本框,其文本通过 MailMerge 自动填充 -(下图中的 <<FinalName>>
)。
TextBox 的形状名称是 namebox
(我从 主页 > 编辑 > 选择窗格得到这个)
我想知道是否可以更改此特定文本框的字体大小 - 默认情况下文本框的 fontSize
为 11,我应该减少它到 10,这取决于变量的字符长度(如果它是否超过 32 个字符),因此它可以更容易地适应更长的文本。
我尝试自己构建一些代码,但在 namebox
字上出现 'variable not defined' 的编译错误。
这是我插入文本框的地方:
Dim caName As String
Dim nameLen As Integer
caName = .DataSource.DataFields("Final Display Name").Value
nameLen = Len(caName)
If nameLen < 32 Then
namebox.Font.Size = 10 'error - namebox variable is not defined
Else
namebox.Font.Size = 11 'practically nothing changes here
End If
如您所见,caName
的值取自 DataSource - 此 DataSource 也链接到 MailMerge,因此值将相同。
我看过各种例子,但大多数例子都是创建一个新的文本框,而不是使用现有的文本框。如何更改现有文本框形状的字体大小?请指导...谢谢! :)
那个“文本框”实际上是一个带有 TextFrame 的 Shape。您可以按名称获取形状对象并通过这种方式更改其字体大小(TextRange
的 TextFrame
):
Sub Test
Dim ShapeName As String
ShapeName = "namebox" ' change this to the name of your shape
ActiveDocument.Shapes(ShapeName).TextFrame.TextRange.Font.Size = 30
' to get the text that is in it...
MsgBox ActiveDocument.Shapes(ShapeName).TextFrame.TextRange.Text
End Sub
如果您不确定要使用的名称,请使用以下命令立即 window 打印形状名称列表:
Sub ShowListOfShapes()
Dim shp as Shape
For Each shp In ActiveDocument.Shapes
Debug.Print shp.Name
Next
End Sub
我的 Word 文档中有一个文本框,其文本通过 MailMerge 自动填充 -(下图中的 <<FinalName>>
)。
TextBox 的形状名称是 namebox
(我从 主页 > 编辑 > 选择窗格得到这个)
我想知道是否可以更改此特定文本框的字体大小 - 默认情况下文本框的 fontSize
为 11,我应该减少它到 10,这取决于变量的字符长度(如果它是否超过 32 个字符),因此它可以更容易地适应更长的文本。
我尝试自己构建一些代码,但在 namebox
字上出现 'variable not defined' 的编译错误。
这是我插入文本框的地方:
Dim caName As String
Dim nameLen As Integer
caName = .DataSource.DataFields("Final Display Name").Value
nameLen = Len(caName)
If nameLen < 32 Then
namebox.Font.Size = 10 'error - namebox variable is not defined
Else
namebox.Font.Size = 11 'practically nothing changes here
End If
如您所见,caName
的值取自 DataSource - 此 DataSource 也链接到 MailMerge,因此值将相同。
我看过各种例子,但大多数例子都是创建一个新的文本框,而不是使用现有的文本框。如何更改现有文本框形状的字体大小?请指导...谢谢! :)
那个“文本框”实际上是一个带有 TextFrame 的 Shape。您可以按名称获取形状对象并通过这种方式更改其字体大小(TextRange
的 TextFrame
):
Sub Test
Dim ShapeName As String
ShapeName = "namebox" ' change this to the name of your shape
ActiveDocument.Shapes(ShapeName).TextFrame.TextRange.Font.Size = 30
' to get the text that is in it...
MsgBox ActiveDocument.Shapes(ShapeName).TextFrame.TextRange.Text
End Sub
如果您不确定要使用的名称,请使用以下命令立即 window 打印形状名称列表:
Sub ShowListOfShapes()
Dim shp as Shape
For Each shp In ActiveDocument.Shapes
Debug.Print shp.Name
Next
End Sub