在WORD中输入改错题的宏命令
董占山
在编排试卷或书籍时,如果遇到改错题,怎么编排呢,它是由三行组成的,如果分别输入3行,那么当版式发生变化时,就会变得面目全非。用WORD的EQ(方程)域可以解决这个问题,但多数人对Word的域比较陌生,不会直接书写域代码,况且就是熟练用户也会感到直接书写域代码的繁琐,且常常出错。下面提供的这个CombineThreeLines宏命令专门用来编排这类改错题的版式。下面详细介绍如何在WORD 97/2000/XP中创建该宏命令。
1.创建一个对话窗口
单击"工具"*"宏"*"Visual Basic 编辑器",启动Visual Basic 编辑器。单击其菜单栏上的命令"插入"*"添加用户窗体",添加一个空白用户窗体,在窗体上添加两个标签(Label)、两个文本编辑(TextBox)和两个命令按钮(CommandButton)组件,按下表修改它们的属性。
| 组件 |
属性 |
值 |
| userform |
(命名) |
frmCombineThreeLines |
|
| Caption |
创建三行组合字符 |
| TextBox1 |
(命名) |
tbAboveLine |
| Caption |
线上文字 |
| TextBox2 |
(命名) |
tbBelowLine |
| Caption |
| 线下文字 |
| CommandButton1 |
(命名) |
btnOK |
| Caption |
| 确定 |
| CommandButton2 |
(命名) |
btnCancel |
| Caption |
| 取消 |
然后单击命令按钮1(CommandButton1,btnOK),为其添加一段命令处理程序如下:
Private Sub btnOK_Click()
If tbAboveLine.Text <> "" And tbBelowLine.Text <> "" Then
SecondText = String(Len(tbAboveLine.Text), "-")
CombinedText = "eq \o (\s \up 0(" + tbAboveLine.Text + "),\s \do 5("
+ SecondText + "),\s \do 10(" + tbBelowLine.Text + "))"
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
CombinedText, PreserveFormatting:=False
End If
frmCombineThreeLines.Hide
End Sub
单击命令按钮2(CommandButton2,btnCancel),为其添加一段命令处理程序如下:
Private Sub btnCancel_Click()
frmCombineThreeLines.Hide
End Sub
最后给窗体的激活事件(UserForm_Activate)添加如下命令:
Private Sub UserForm_Activate()
Load frmCombineThreeLines
End Sub
2. 创建调用该对话窗口的宏命
单击Visual Basic编辑器菜单栏上的"插入"*"添加模块"命令,在代码编辑窗口输入如下程序段:
Sub CombineThreeLines()
frmCombineThreeLines.Show
End Sub
完成上述步骤后,保存当前的工作,回到WORD,就可以使用该宏命令了。
3. 使用该宏命令
将插入点移到需要这种版式的位置,运行这个宏,弹出一个对话窗口(见图),在"线上文字"编辑框中输入一个英语单词或词组,在"线下文字"编辑框中输入字母A、B、C等,单击"确定"按钮在文档中插入域。
为了使用方便,你可以将该宏定义在工具栏上。使用时,只需单击相应工具按钮就可以打开对话窗口。
©董占山Zhanshan Dong
|