【问题标题】:How to enable Grow Text Box To Fit in MS Publisher using VBA如何使用 VBA 使文本框适合 MS Publisher
【发布时间】:2018-04-21 19:56:03
【问题描述】:

你好 MS Publisher VBA 程序员 :-)

看起来如此简单的事情实际上没有记录。 我需要做的就是能够以编程方式将文本插入文本框,然后在我添加更多文本时让文本垂直扩展自身。

如果我通过插入 TextBox 并在 TextBox 的“格式”选项卡的“文本适合”下拉菜单中选择“使文本框适合”选项手动执行此操作,则效果很好。

此代码不起作用:

Sub myGrowToFit()
        Set myTextBox = ActiveDocument.Pages(1).Shapes.AddTextbox _
             (Orientation:=pbTextOrientationHorizontal, _
             Left:=0, Top:=0, _
             Width:=100, Height:=40)
        myTextBox.TextFrame.TextRange.text = "Line1" & vbLf & "Line2" & vbLf & "Line3" & vbLf & "Line4"
        myTextBox.TextFrame.AutoFitText = pbTextAutoFitGrowToFit
        MsgBox ("Press OK to Continue After You View The Result")
        myTextBox.Delete
End Sub

有什么想法吗?谢谢。

【问题讨论】:

  • 您使用的是 Publisher 2010 吗?
  • Publisher 2013。但我有一个更新的版本在工作。
  • 在 2016 年早些时候尝试过,但仍然是同样的问题。当我运行代码时没有任何反应。它只是显示没有高度调整的对话框。

标签: vba ms-publisher


【解决方案1】:

2021 年,我无法使其适用于 Office 365 ProPlus Publisher。

但是,对我来说,简单的解决方法是使用 .Overflowing 属性 (doc)。 我只是缩小文本,直到溢出属性等于 0,这表明它没有溢出。

 Dim titleTextbox As Shape
 Set titleTextbox = ActiveDocument.Pages.Item(1).Shapes("My Textbox Name")
 
 Dim initialTextSize As Integer
 initialTextSize = titleTextbox.textFrame.TextRange.Font.Size

 While (titleTextbox.textFrame.Overflowing < 0)
    initialTextSize = initialTextSize - 1
    titleTextbox.textFrame.TextRange.Font.Size = initialTextSize
 Wend

相反,如果您想增大文本,则在 while 循环中增大而不是减小它的大小。然后一旦溢出,退出循环并将大小减一。

另外,我找不到pbTextAutoFitGrowToFit 的文档,所以如果你有它,如果你不介意的话,请分享。

我找到的这个资源,https://docs.microsoft.com/en-us/office/vba/api/publisher.pbtextautofittype,只显示了三个,pbTextAutoFitBestFitpbTextAutoFitNonepbTextAutoFitShrinkOnOverflow

希望有一天有人能弄清楚如何设置AutoFitText 属性。

【讨论】:

    猜你喜欢
    • 2016-09-29
    • 2019-09-22
    • 2017-03-29
    • 2018-01-21
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多