WORD2007——文本框和线条组合后设置插入位置问题
清晨曦月 博客专家认证 2008-06-12 01:39:29 简言之,就是把一个Shape对象以插入式这种格式插入到指定位置。
具体情况如下:(代码使用VB.NET 2008编写,WORD 版本为 2007)
1、记当前插入符位置为P(X以行为单位,Y以列为单位)
2、使用Shapes.AddTextbox方法添加2个文本框、AddLine方法添加2条直线到当前插入符位置,分别记为T1,T2,L1,L2
3、将T1,T2,L1,L2加入数组Array以便组合:
Dim grp As Word.Shape = WordApp.ActiveDocument.Shapes.Range(Array).Group
4、设置grp插入(grp.WrapFormatType=wdWrapInline)在前面记录的P位置
问题出在第3、4步,第3步组合后,grp对象出现在文档开头,怎么才能把这个组合后得到的Shape对象插入到P位置?
我现在用的方法是得到组合体(grp)并设置为插入式之后,依次进行如下调用:
grp.Select() '选定组合体
WordApp.Selection.Cut() '剪切
WordApp.GoBack() '将插入点移动到刚才编辑位置(自动移动到P)
WordApp.Selection.Paste() '粘贴
WordApp.Selection.MoveRight(1, 1) '将插入符右移一个字符(当选定时即移动到选定对象右面)
这样做有一些麻烦:
1、当关闭WORD时,提示有一副图像放在剪贴板中。这个对话框明显是一个令人厌烦的“副产品”
2、更主要的是,当执行以上操作后,经常无法达到预期的效果,机器越慢越难达到:执行以上操作后grp仍旧位于文档开头。这个问题非常令人头疼,因为不是每次执行都跑到文档开头,是有时候,尝试在WordApp.GoBack()之后加入DoEvents,使WORD有足够时间执行该操作也没有改善。