如何从Word 2010 ActiveX标签中选择(或复制)文本?

时间:2013-07-31 17:58:04

标签: vba activex word-vba word-2010

Word 2010文档具有显示某些文本的ActiveX标签。是否有任何方法可以从用户的角度对文本进行选择或以其他方式复制,以便将其粘贴到其他地方?

使用案例:我将表格交给某人,然后将其填写并退还给我。有问题的元素是一个Label,当双击时,会生成UserForm1,其上有一个ListBox。一旦做出一个或多个选择并且用户在UserForm1上按下OK,Word文档中的Label就会更新。然后我收到表格,并想要右键单击标签,复制文本,然后将其粘贴到电子邮件中。

1 个答案:

答案 0 :(得分:0)

至少从最终用户的角度来看,你不能。让我解释一下。

我开始想用Label实现这一点,但很快就发现我无法复制使用常规ctrl-c显示的文本或右键单击>副本。

所以,我把它切换到TextBox。这有点工作,数据显示,但有一个缺陷:Word 2010似乎在TextBox的最后一行和TextBox的底部之间放置了一堆不可选择的空间,使大多数内容隐藏,直到你滚动回到它的顶部。

这就是它的样子:

Comparison of TextBox vs Label approach before the fix

注意列表中最后一项下面的所有空的,不可选择的空格?

我的问题解决方案是100%的文本没有显示在框中是使用这行代码,在将值放在TextBox中之后将光标放在文本的顶部:

ThisDocument.functionalComponentsTextBox.SelStart = 0

这基本上模拟用户手动单击TextBox并按向上键直到他到达TextBox的顶部。有了这个,ListBox中的选择现在存储在TextBox中,其内容可以作为业务流程的一部分复制和粘贴。

以下是它的样子:与正确显示的标签方法相比,完美匹配!额外的奖励:文本是可选的,TextBox是可自定义的,所以我从中删除了边框......无法区分!

Comparison of TextBox vs Label approach after the fix