如何使用 vba 宏将光标到达 Publisher 2016 中文本框的末尾
how to reach curser to end of textbox in publisher 2016 with vba macro
我正在 ms publisher 中为报纸开发宏。
"grow textbox to fit text" 选项似乎不适用于下一个 linked 文本框,但我创建了一个手动技巧:
- 将焦点设置在第一个文本框上
- 按 Ctrl+end 按钮使光标到达文本框的末尾
- 按 Ctrl+Shift+向下箭头键
- Ctrl+Shift+End 到 Select 下一个linked 文本框的剩余文本
- 按 Ctrl+X 剪切,然后断开第一个文本框的 Link
- select 第二个文本框并按 Ctrl+v 将剪切的文本粘贴到第二个文本框
- 然后在格式选项卡中设置 "grow textbox to fit text" 选项。
手动步骤对您来说很简单且可测试,但如果有人可以帮助我使用 vba 宏编码执行相同的步骤,那就太棒了。
我为宏目标重复步骤:
- 转到第一个文本框文本的末尾
- 然后 select 其他文本框中故事的剩余文本 link 与第一个
编辑
- 然后剪切select编辑的文本
- 然后打破link
- 然后将剪切的文本输入第二个文本框
- 然后在格式文本框中设置"grow textbox to fit text" --text autofitting。
我在 vba 中成功 linking 文本框,如下所示:
ActiveDocument.Pages(1).Shapes(1).TextFrame.NextLinkedTextFrame = ActiveDocument.Pages(1).Shapes(2).TextFrame
ActiveDocument.Pages(1).Shapes(2).TextFrame.AutoFitText = pbTextAutoFitShrinkOnOverflow
我想制作自动报章宏
解决方法很简单:
Dim shpTextBox As Shape
Set shpTextBox = ActiveDocument.Pages(1).Shapes.AddTextbox _
(Orientation:=pbTextOrientationHorizontal, _
Left:=0, Top:=0, _
Width:=100, Height:=100)
ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange.Text = "A Quick Brown Fox Jumps over the lazy Dog, A Quick Brown Fox Jumps over the lazy Dog, A Quick Brown Fox Jumps over the lazy Dog"
Set shpTextBox = ActiveDocument.Pages(1).Shapes.AddTextbox _
(Orientation:=pbTextOrientationHorizontal, _
Left:=500, Top:=500, _
Width:=500, Height:=300)
ActiveDocument.Pages(1).Shapes(1).TextFrame.NextLinkedTextFrame = ActiveDocument.Pages(1).Shapes(2).TextFrame
ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange.Select
If Selection.Type = pbSelectionText Then
MsgBox ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange.Text
End If
ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Select
If Selection.Type = pbSelectionText Then
MsgBox ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Text
ActiveDocument.Selection.TextRange.Cut
'ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Cut
ActiveDocument.Pages(1).Shapes(1).TextFrame.BreakForwardLink
ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Paste
ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Select
ActiveDocument.Pages(1).Shapes(2).Width = 50
ActiveDocument.Pages(1).Shapes(2).TextFrame.AutoFitText = pbTextAutoFitGrowToFit
End If
ActiveDocument.Pages(1).Shapes(2).TextFrame.AutoFitText = pbTextAutoFitGrowToFit
我正在 ms publisher 中为报纸开发宏。 "grow textbox to fit text" 选项似乎不适用于下一个 linked 文本框,但我创建了一个手动技巧:
- 将焦点设置在第一个文本框上
- 按 Ctrl+end 按钮使光标到达文本框的末尾
- 按 Ctrl+Shift+向下箭头键
- Ctrl+Shift+End 到 Select 下一个linked 文本框的剩余文本
- 按 Ctrl+X 剪切,然后断开第一个文本框的 Link
- select 第二个文本框并按 Ctrl+v 将剪切的文本粘贴到第二个文本框
- 然后在格式选项卡中设置 "grow textbox to fit text" 选项。
手动步骤对您来说很简单且可测试,但如果有人可以帮助我使用 vba 宏编码执行相同的步骤,那就太棒了。
我为宏目标重复步骤:
- 转到第一个文本框文本的末尾
- 然后 select 其他文本框中故事的剩余文本 link 与第一个 编辑
- 然后剪切select编辑的文本
- 然后打破link
- 然后将剪切的文本输入第二个文本框
- 然后在格式文本框中设置"grow textbox to fit text" --text autofitting。
我在 vba 中成功 linking 文本框,如下所示:
ActiveDocument.Pages(1).Shapes(1).TextFrame.NextLinkedTextFrame = ActiveDocument.Pages(1).Shapes(2).TextFrame
ActiveDocument.Pages(1).Shapes(2).TextFrame.AutoFitText = pbTextAutoFitShrinkOnOverflow
我想制作自动报章宏
解决方法很简单:
Dim shpTextBox As Shape
Set shpTextBox = ActiveDocument.Pages(1).Shapes.AddTextbox _
(Orientation:=pbTextOrientationHorizontal, _
Left:=0, Top:=0, _
Width:=100, Height:=100)
ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange.Text = "A Quick Brown Fox Jumps over the lazy Dog, A Quick Brown Fox Jumps over the lazy Dog, A Quick Brown Fox Jumps over the lazy Dog"
Set shpTextBox = ActiveDocument.Pages(1).Shapes.AddTextbox _
(Orientation:=pbTextOrientationHorizontal, _
Left:=500, Top:=500, _
Width:=500, Height:=300)
ActiveDocument.Pages(1).Shapes(1).TextFrame.NextLinkedTextFrame = ActiveDocument.Pages(1).Shapes(2).TextFrame
ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange.Select
If Selection.Type = pbSelectionText Then
MsgBox ActiveDocument.Pages(1).Shapes(1).TextFrame.TextRange.Text
End If
ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Select
If Selection.Type = pbSelectionText Then
MsgBox ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Text
ActiveDocument.Selection.TextRange.Cut
'ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Cut
ActiveDocument.Pages(1).Shapes(1).TextFrame.BreakForwardLink
ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Paste
ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange.Select
ActiveDocument.Pages(1).Shapes(2).Width = 50
ActiveDocument.Pages(1).Shapes(2).TextFrame.AutoFitText = pbTextAutoFitGrowToFit
End If
ActiveDocument.Pages(1).Shapes(2).TextFrame.AutoFitText = pbTextAutoFitGrowToFit