工作中需要对一个模板Word进行批量输入信息,但Word是个受保护的文档,并且内部有很多文本型窗体域。直接用vbs替换比较困难。
这里补充下文本型窗体域是什么:
窗体域是用来给人填写调查之用。
下拉式窗体是只能选择预置的答案,
选择式窗体者只能选择是或否,用开关来表示。
文字型窗体,只能输入指定文字长度的字符。当窗体锁定后。只有窗体可以操作,文字内容没有办法更改。
就开始折腾怎么能做到自动填充,准备在Excel上做一个宏。
第一步就是确定这些文本型窗体域的类型情况。
Sub 按钮1_Click() Dim wdTextFormNum wordPath = Cells(1, "j") Set objword = GetObject(, "Word.Application") objword.Visible = True MsgBox (objword.ActiveDocument .Fields.Count) For i = 1 To objword.activedocument.Fields.Count Cells(i + 1, "j") = objword.ActiveDocument.Fields(i).Index Cells(i + 1, "K") = objword.ActiveDocument.Fields(i).result Cells(i + 1, "L") = objword.ActiveDocument.Fields(i).Type Next End Sub
通过上述代码可以把窗体域的情况填写出来,方便进一步分析。
创建宏,输入上述代码,执行宏或者点击按钮就可以输出如下内容。
![6fe210a3d74ec84f6cdcd43032f50dbf.png](https://i-blog.csdnimg.cn/blog_migrate/a09939f56b823b11d614f94d8da47193.jpeg)