Ms word 从宏编辑文本框中的文本

Ms word 从宏编辑文本框中的文本,ms-word,Ms Word,我本以为这会很简单,但我无法让它工作(如果可以的话,我真的可以为自己节省很多工作;无可否认,我不是一个Word宏向导) 我有一个Word文档,里面有一堆文字简介。我定义了一个自定义文本框,并将其添加到文本框库中。现在,我想在每个模糊旁边放置一个文本框,然后将模糊移动到文本框中。我希望定义一个宏来实现某种程度的自动化(即,我手动选择模糊文本,然后运行一个宏来剪切模糊,将光标移动到其正上方的文本框中,并将模糊粘贴到那里) 这似乎是“进入文本框”部分的障碍。我可以通过以下步骤从键盘手动完成: (光标

我本以为这会很简单,但我无法让它工作(如果可以的话,我真的可以为自己节省很多工作;无可否认,我不是一个Word宏向导)

我有一个Word文档,里面有一堆文字简介。我定义了一个自定义文本框,并将其添加到文本框库中。现在,我想在每个模糊旁边放置一个文本框,然后将模糊移动到文本框中。我希望定义一个宏来实现某种程度的自动化(即,我手动选择模糊文本,然后运行一个宏来剪切模糊,将光标移动到其正上方的文本框中,并将模糊粘贴到那里)

这似乎是“进入文本框”部分的障碍。我可以通过以下步骤从键盘手动完成:

  • (光标正好位于文本框的左侧)向右移动箭头(选择文本框)
  • F2(将光标放置在文本框中进行编辑)
但是,试图录制一个复制这一点的宏是行不通的。录制的宏的代码最终如下所示:

Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
ActiveDocument.Shapes.Range(Array("Text Box 2")).Select
当我在调试器中运行此宏时,第一条语句实际上选择了宏启动时光标所在的文本框

不幸的是,第二条语句不仅没有将编辑光标移动到该文本框内(就像F2键手动移动一样),实际上还选择了一个不同的文本框(文档中的第一个)

我注意到,如果我查看选择窗格(alt-F10),它会显示文档中的文本框,它们都具有相同的名称(“文本框2”)。所以我想这就是问题的一部分。(Word不会给每个文本框一个唯一的名称吗?)

这肯定是可能的吗-/

谢谢


/约翰

我知道这是愚蠢的深奥,但万一有人感兴趣,我想出了自己的答案。以下是执行此操作的宏代码:

Selection.Cut
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.HomeKey Unit:=wdLine
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.ShapeRange.TextFrame.TextRange.Select
Selection.PasteAndFormat (wdFormatOriginalFormatting)
诀窍是:

1) 至于不在正确的文本框上操作的问题:当我试图用宏记录器定义宏时,Word将我甩了出去,方法是插入
ActiveDocument.Shapes.Range(数组(“文本框2”))。选择
语句(按名称选择不起作用,因为所有文本框都有相同的名称)。但是文本框已经被选中(可以通过
Selection.shaperage
对象访问),因此不需要再次选中它

2) 要在文本框内移动编辑光标,请在TextRange对象上选择(Selection.ShapeRange.TextFrame.TextRange.Select)。

我认为试图通过宏记录来定义这一点是行不通的;录音只是做得不对。我只好用手把它弄脏了

感谢任何一位对此有任何想法的人

/约翰