我的 Word 檔案中有一個文本框,其文本通過 MailMerge 自動填充 - (<<FinalName>>下圖中的那個)。

TextBox 的形狀名稱是namebox(我從Home > Editing > Selection Pane得到這個)
我想知道是否可以更改此特定 textBox 的字體大小 - 默認情況下 textBox 的 afontSize為11,我應該將其減少到10,具體取決于變數的字符長度(如果它長于 32 個字符或不),所以它可以更容易地適應更長的文本。
我曾嘗試自己構建一些代碼,但我在namebox單詞上收到“未定義變數”的編譯錯誤。
這是我插入文本框的地方:

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取自資料源 - 此資料源也鏈接到 MailMerge,因此值將相同。
我看過各種示例,但其中大多數會創建一個新的文本框,而不是使用現有的文本框。如何更改現有文本框形狀的字體大小?請指導...謝謝!:)
uj5u.com熱心網友回復:
那個“文本框”實際上是一個帶有 TextFrame 的 Shape。您可以通過名稱獲取形狀物件并通過以下方式更改其字體大小(TextRange為 its 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
TextFrame 物件 (Word)
如果您不確定要使用的名稱,請使用以下命令在即時視窗中列印形狀名稱串列:
Sub ShowListOfShapes()
Dim shp as Shape
For Each shp In ActiveDocument.Shapes
Debug.Print shp.Name
Next
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/353785.html
上一篇:Excel2合一
下一篇:如何使用vba洗掉字串的第一行
