当前位置:首页 > 用WORD写论文时有哪些好用到哭的奇技淫巧?
{ DOCVARIABLE sym }
域 DOCVARIABLE 的作用就是把变量 sym 显示出来。举个建国:ICS = 工业控制系统,那么域 DOCVARIABLE 会将所有的 { DOCVARIABLE ICS } 替换成 工业控制系统。
所以在 Word 中实现 LaTeX 中的宏替换功能需要以下几步:
1. 在变量集合 Variables 中添加 ICS,并给其赋值;
2. 按 Ctrl +F9 插入域,手动输入 DOCVARIABLE ICS。
相当的没有效率,被 LaTeX 甩几条街有木有。但是不用担心,Word 自有它的过人之处:VBA。下面介绍一种方法来简化这个过程。
点击菜单中的宏,如下图所示,宏名随便填,然后点击创建,如下图所示。
删除代码框中的所有代码,然后将下列代码复制进去。
Sub UpdateVariable()
' Clear variables
For Each Var In ActiveDocument.Variables
Var.Delete
Next
' Set the file path
Dim MyFile As Object
Set MyFile = CreateObject(Scripting.FileSystemObject)
Dim FilePath As String
FilePath = ActiveDocument.Path & Symbols.xlsx
' If can't find the file, show error message and exit sub
If Not MyFile.FileExists(FilePath) = True Then
MsgBox Can't find file: Symbols.xlsx, Title:=Error
Exit Sub End If
' Read the excel file Symbols.xlsx Dim ExcelObject As Object
Set ExcelObject = GetObject(FilePath) Set Table = ExcelObject.Sheets(1).UsedRange() For i = 1 To Table.Rows.Count V1 = Table.Cells(i, 1).Text V2 = Table.Cells(i, 2).Text
ActiveDocument.Variables.Add Name:=V1, Value:=V2 Next
' Update field
ActiveDocument.Fields.Update End Sub
Sub InsertSymbol() ' Show inputbox
Symbol = InputBox(Input symbol) ' Insert field
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _ PreserveFormatting:=False ' Insert parameter
Selection.TypeText Text:=DOCVARIABLE & Symbol
' Update field
ActiveDocument.Fields.Update
End Sub
如下图所示
这样两个宏就创建好了,为了方便的调用,将这两个宏添加到工具栏中。打开自定义工具栏窗口。找到刚刚新建的两个宏,将他们添加到开始选项卡中(凭个人喜好,爱放哪放哪)。
然后重新设置他们的名字和图标,此步骤可省略,如下图所示。
这样这两个宏就被添加到工具栏中了,如下图所示。
为了配合这两个宏的使用,我们需要一个外部文件来储存各种变量和对应值。这里采用的是 Excel 文件。在当前 Word 文档的所在目录内,新建名为 Symbols.xlsx 文件,必须是这个名字,因为在上面的代码中被写死了,如果你想换个名字,要把这行代码一并改了。
FilePath = ActiveDocument.Path & Symbols.xlsx
然后打开这个 Excel 文件,然后添加你要用到的符号,如下图所示。
左边一列是变量的名称,右面一列是变量的值。用法就是点击 Word 工具栏上的更新符号按钮,Word 会读取所有的变量值。如果想在某处插入作者,点击插入符号按钮,在弹出的对话框中填 AU,然后点击确定,如下图所示。
然后就出现你事先在 Excel 中定义好的内容了,如下图所示。
然后就出现你事先在 Excel 中定义好的内容了,如下图所示。
如果后期想修改符号,只需要在 Excel 中统一修改,保存后点击 Word 工具栏上的更新符号按钮,Word 中所有的 DOCVARIABLE 域都会更新。
当然,你可以为宏添加快捷键,就不用每次都用鼠标点击了。
共分享92篇相关文档