WORD中DocVariable使用

2019/10/22

定义 DocVariable

ALT+F11,进入 VBE 环境,通过菜单【插入】-【模块】,插入一个模块,编写如下代码:Option Explicit

Public Sub AddDocVariables() ' delete doc variables if any Dim doc_var As Variable For Each doc_var In ActiveDocument.Variables doc_var.Delete Next ' add new doc variables ActiveDocument.Variables.Add Name:="cname", Value:="XXX" ' customer name'
ActiveDocument.Variables.Add Name:="csname", Value:="XXX公司" ' customer short name' 
ActiveDocument.Variables.Add Name:="pname", Value:="项目" ' project name' 
End Sub 

代码很直观,先删除所有文档变量,然后重新定义三个文档变量:

文档中插入 DocVariable

将上面的代码运行一次(将光标放在过程中间,然后 F5),回到 Word 编辑界面,通过菜单【插入】-【文档部件】- 【域】(注:我的 Word 版是 2013)


word_doc_variable_01.jpg

然后找到类别为 “文档自动化” 域名为 DocVariable,选中该域,新名称中输入 cname,就是我们前面 VBA 定义的文档变量。


word_doc_variable_02.jpg

点击 “确定” 按钮,客户名称就插入了。



是不是感觉操作有点麻烦?Office 提供快捷键,可以非常方便插入域代码:

  • 快捷键:Ctrl + F9
  • Word 文档出现一对对应的大括号 {},中间为灰色,我们在大括号中间输入 {docviarable cname},然后再按 F9 就可以了。

平时我们都用这种方法来插入域代码。对这个域代码,我们可以通过 Shift + F9 来切换显示,Word 会交替显示 {docviarable cname} 和 “XXX有限公司” 。

如果文档中有多个域代码,我们就使用 Alt + F9 来切换显示。操作就这几招。

  • Ctrl + F9: 插入域代码
  • F9: 执行域代码
  • Shift + F9: 单个域代码切换显示
  • Alt + F9: 整篇文档的域代码切换显示
  • 定义 DocVariable 类型的域代码,必须使用 VBA,没有手工定义的方法