惹鬼by小秦子鲤鱼乡:Word域和宏的应用

来源:百度文库 编辑:中财网 时间:2024/04/27 17:08:30
  • Word域和宏的应用
  •  word域

  WORD域的英文意思是范围,类似数据库中的字段,实际上,它就是Word文档中的一些字段。每个Word域都有一个唯一的名字,但有不同的取值。用Word排版时,若能熟练使用WORD域,可增强排版的灵活性,减少许多烦琐的重复操作,提高工作效率。

  

一、域是什么

  首先,我们了解几个与域相关的概念。域是文档中的变量。域分为域代码和域结果。域代码是由域特征字符、域类型、域指令和开关组成的字符串;域结果是域代码所代表的信息。域结果根据文档的变动或相应因素的变化而自动更新。域特征字符是指包围域代码的大括号"{}",它不是从键盘上直接输入的,按键可插入这对域特征字符。域类型就是WORD域的名称,域指令和开关是设定域类型如何工作的指令或开关。

  例如,域代码{DATE\*MERGEFORMAT}在文档中每个出现此域代码的地方插入当前日期,其中"DATE"是域类型,"\*MERGEFORMAT"是通用域开关。

  如当前时间域:

  域代码{DATE\@"yyyy'年'M月'd日'"\*MERGEFORMAT}

  域结果2009年2月1日(当天日期)

  

ban()为下一个字符前的空白添加下划线\li()

  \fon右边n磅

  

  域代码:{EQ-\d\fo5()A-}  讲解:{EQ-\下一个字符后移5磅A-}

  \ban左边n磅

  

  域代码:{EQ-\d\ba7(A-)}  讲解:{EQ-\下一个字符前移7磅}

  \li为下一个字符前的空白添加下划线

  

  域代码:{EQ我\d\fo12\li()你}  讲解:{EQ我\下一个字符后移12磅,空白添加下划线你}

  符号或默认符号及三个元素创建积分。

  第一个元素是积分下限,第二个是上限,第三个是积分表达式。

  

  域代码:{EQ\i(a,b,3x+1dx)}  讲解:{EQ\积分(下标a,上标b,表达式3x+1dx)}

  可用参数: 将符号更改为大写的∑并生成求和公式\su;将符号更改为大写的Π并生成求积公式\pr ;创建行内格式,积分限不在符号的上下,而在符号之右\in;将符号设置为固定高度的字符\fc\c。

  \su生成求和公式

  

  域代码:{EQ\i\su(i=1,n,xi)}  讲解:{EQ\求和(下标a,上标b,表达式xi)

  \pr生成求积公式

  

  域代码:{EQ\i\pr(i=1,n,xi)}  讲解:{EQ\求积(下标i=1,上标n,表达式xi)

  \in积分限不在符号的上下,而在符号之右

  

  域代码:{EQ\i\in(a,b,3x+1dx)}  讲解:{EQ\积分\积分限在符号之右(a,b,3x+1dx)}

  \fc\c将符号c设置为固定高度的字符

  

  域代码:{EQ\i\fc\ \in(a,b,3x+1)}  讲解:{EQ\i\符号改为 \in(a,b,3x+1)};将符号设置为固定高度的字符 。

  \vc\c符号高度与第三个元素高度一致

  

  域代码:{EQ\i\vc\ \in(a,b,3x+1)}  讲解:加\vc开关后,指定的符号 自动放大

  微软的office软件运行用户自己编写叫VBA的脚本来增加其灵活性,进一步扩充它的能力。如完成一个一打开word文件同时要打开某个文件的功能,必须要自己编写一段称之为宏的脚本。具体做法是在“工具”菜单“宏”-“宏”弹出的对话框输入宏名,然后按“创建”按钮会打开visualbasic编辑器,你就可以编程了,这个就是宏。学会它会有很多乐趣的。简单点说就是批处理,但是要比批处理功能更强大.使你一个简单的操作,比如一个左键点击,就可以完成多项任务,很方便的.比如说你的电脑每天要监控并记录很多组的数据,而且这些数据是不断变化更新的(发/变电站记录表记等),这样你就需要做个宏来将服务器里这些数据定时转到一个或多个WORD文档里来,便于计算存档和打印.你的领导办公室在远一些的地方也可以通过网络来调用这个宏来将数据传到他的办公桌的电脑上.当你启动做好了的这个含有宏的文件的时候会弹出一个窗口问你是否起用宏.

  

  宏是一系列Word命令和指令,这些命令和指令组合在一起,形成了一个单独的命令,以实现任务执行的自动化。

  如果在MicrosoftWord中反复执行某项任务,可以使用宏自动执行该任务。

 

 

快速输入填空题的空格线

我看到很多老师在输入填空题的空格线时,都采用先关闭输入法,后按住“Shift”+“_”的方法画空格线。用这种方法,是以半角字符画线,而且在录入过程中需要不断地切换输入法,很不方便。如果我们利用Word2000中提供的“宏”功能,指定键盘上的一个组合键对应一段空格线,就可以在以后的输入填空题的空格线中轻松地使用快捷键来画线了。

单击“工具→宏→录制新宏”,打开“录制宏”对话框,输入宏名,如“空格线”,并在“将宏指定到”栏中单击“键盘”,打开“自定义键盘”对话框。这时在键盘上按下用来代替该宏操作的快捷键,如“Ctrl”+“F12”;在“将修改保存在”对话框中,选择“试卷”。如图1所示。依次单击[指定]、[关闭]按钮,光标变为空心箭头加磁带形式,进入录制状态。这时按住“Shift”+“_”画一段空格线。然后,单击“录制宏”工具栏中的“停止录制”按钮,就完成了宏录制。注意:在录制状态,所有操作都将被录制到宏操作里,所以不要进行和画空格线无关的操作。

次录制宏,看起来挺麻烦,但能够做到一劳永逸,有了它,以后就可以轻松方便了。在以后输入填空题的空格线时,只需用“Ctrl”+“F12”就可以轻松输入空格线。如果觉得空格线长度不够,可以连续按“Ctrl”+“F12”。

快速输入判断题的虚线和括号

在判断题的最后,一般都要输入一个填写答案的括号,这个括号的位置往往设在题目最后一行的最右边。一般老师们习惯用虚线来连接题目和括号。在此,也可以录制一个“宏”指定到键盘上,使判断题后的虚线和括号也能快捷输入。

打开“录制宏”对话框,输入宏名,如“虚线括号”,并将宏指定到键盘的组合键如“Ctrl”+“F11”。进入录制状态后,进行如下操作:

在水平标尺的右端(希望判断题题末右括号出现的位置)单击,标尺上会出现一个制表位“┗”,双击该制表位,打开“制表位”对话框。在“对齐方式”中,选择“右对齐”;在“前导符”栏中,选择虚线来连接题目和括号(如图2所示)。选择完毕,单击[确定]按钮。然后按“Tab”键,会出现一条从光标位置到行末的前导虚线。输入所需括号后,停止录制。 

以后,您只需在判断题内容输入完毕后,按“Ctrl”+“F11”,Word就会自动输入前导虚线和括号。所有的括号还会自动在右端对齐,美观而且简便。

快速输入选择题的选项

选择题的题目行尾一般要输入一个括号来填写答案,中间用虚线连接。现在就可以用“Ctrl”+“F11”了,方便易用。而它的备选答案A、B、C、D几项如果各占一行的话,利用“项目符号和编号”的功能就可以简便输入。但一行有两个或四个答案的话,各题中的选择项目从上到下就很难对齐排列。下面的方法可以帮助我们轻松地解决这个问题:

在“录制宏”对话框中,指定键盘的组合键“Ctrl”+“F10”后,进入录制状态。插入一个单行四列的表格。然后选择该表,在“格式→边框和底纹→边框”中,选择“无”,取消表格线。在“格式→项目符号和编号→编号”中选择编号类型为“A、B、C”,设置各选项编号。退出录制状态。

用同样的方法,再指定组合键“Ctrl”+“F9”对应一个二行二列的宏操作。有了这两个设置,以后在需要时只要按“Ctrl”+“F10”或“Ctrl”+“F9”,就可以分别得到如图3所示的结果。不仅排列整齐,整体布局美观,而且连编号“A、B、C、D”都有了,我们只需要填入选项内容就行,非常省事。

 

 ⊙Ч鼶OS的人都知道DOS下有一个批处理命令。可以这样说,Word中的“宏”就相当于DOS下的批处理。“宏”就是一系列预定的操作步骤的记录,执行“宏”就是Word按“宏”中记录的顺序自动执行各种操作。“宏”的本质就是一段VisualBasic代码。它的作用一是化繁为简、压缩步骤(类似DOS中的批处理);二是开放系统、扩展功能,完成Word中某些不能直接完成的任务。我们知道,VisualBasic是Office的开发语言,当然也是Word中的编程语言。因此,当我们在Word中创建了一个宏时,事实上也就开发出了一条新的Word命令。我们可以针对工具按钮、菜单选项或快捷键来创建一个宏,也可以用VisualBasic来书写或修改一个宏,最后我们还可以执行Word中带有的宏。  当然,“宏”编程属于Word中的高级应用技巧,它需要使用者有一定的编程知识。如果你原先对VB比较熟悉的话,那么编起“宏”来也不会太费气力,因为Word中的“宏”就是利用VBA(VisualBasicforApplication)技术来组织编写的;如果你与我一样,是个涉“宏”不深者,那么请跟我一起来认识一下Word中的“宏”吧!

  一、基础篇:初识Word“宏”

  1.记录“宏”:在Word中你至少有两种方法记录“宏”,即录制“宏”和编写“宏”。前者实际上是把使用者在录制期间的一切操作步骤按VB语句存储起来以形成命令(这无疑是初学者的首选);而后者则是利用VB编辑器通过直接撰写VisualBasic语句来完成(若非高手,还是少动为妙)。总之,这两种方法你都可以在“工具”菜单的“宏”子菜单中找到。  2.存储“宏”:首先需要解释两个名词:“全局宏”和“模板宏”。前者指的是存储在通用模板(Normal.dot)中的“宏”,它的存储几乎完全不用你操心,只要录制好以后你就可以随时使用了。而后者指的是储存在某些模板或文档中的“宏”,所以要存储这样一个“宏”,你必须在关闭模板前进行存盘:即选择“文件”中的“另存为”菜单。  3.运行“宏”:最原始的方法是单击“工具”/“宏”/“宏”,然后在“宏”窗口中选择你要运行的宏名,再单击“运行”。其实在大多数情况下,我们只须点击代表该“宏”的按钮或快捷键就行了。  4.编辑“宏”:打开要编辑的“宏”所依附的模板,选择“工具”菜单中的“宏”命令,打开“宏”对话框,从“宏名”列表中选择要编辑的“宏”,再单击“编辑”按钮,在“宏”的编辑窗口中要删要减就看你的兴趣了。  现在,让我们?体看看“宏”这个小东东是怎样完成Word中那么多令人咋舌的神奇功能的。

  二、入门篇:自动录制Word“宏”

  在我们的工作中常会遇到这种情况:一些相同的内容总要在不同的文档中反复录入,比如单位的名称啦、自己的通讯地址啦等等,除了厌倦以外还常常给人一种浪费青春的感觉。不过你有没有想过使用Word中的“宏”,让它为你消除烦人的重复劳动。  1.新建一张空白文档,单击“工具”/“宏”/“录制新宏”,在出现对话框的“宏名”中给该宏起个名字,在这里我们命名为“联系地址”,然后将“将宏保存在”选项设为“所有文档”(见图1);  2.在“录制宏”的对话框中单击“将宏指定到”栏中的任一项,以将其指定到键盘或工具栏上,在这里我们选择“键盘”,如图2所示。我们在“请按新快捷键”栏中直接按下你想定义的新快键,在这里我们定为“Alt+D”,然后我们顺击“指定”、“关闭”按钮;  3.这时,你会发现窗口中又多了一个“宏”工具条,并且鼠标也变成了“磁带”状,它表明录制“宏”的工作现在开始!从此时直到你按下“停止录入宏”按钮之前的一切动作都将被“摄入”该宏中,你可要小心行事哦(见图3)。  4.在文档中输入正文,比如“华中理工大学人文学院”,接着我们还可对其进行小小的编辑,用键盘(SHIFT+左右方向键)选择正文,再用鼠标单击加粗和倾斜按钮,然后再按一下方向键取消选择,最后单击“宏”工具条上的停止按钮,鼠标恢复原状。  现在我高兴地祝贺你:一个完全由你包办的“宏”已正式诞生了,一个完全由你掌握的Word时代已正式来临了!不过,要真正把你的名字写进Word的开发者名录,你至少还得对以下“宏”的常识有所了解。  首先,我们必须弄清我们录制的“宏”究竟到哪里去了?其内容又是些什么?实际上,我们录制的“宏”是一段MicrosoftVisualBasic程序,在Word中我们可以通过单击“工具”/“宏”/“宏”菜单,并单击弹出窗口中的“编辑”按钮即可(见图4)。其实,熟悉VB的朋友一眼就能看出,这是个和VB集成开发环境(IDE)非常相似的界面,我们在其窗口中可以十分清楚地查看到“宏”的源代码。还是以刚才的“联系地址宏”为例吧,它的代码就非常简单,让人一目了然。现在将它逐行解释,如图5中斜体字所示。  好了,到此为止我们算是对Word“宏”的轮廓有了一个大致的了解,不过你要想成为Word“宏”高手的话,还得继续学习。

  三、进阶篇:手工创建Word“宏”

  虽然说用Word自身录制“宏”的方法简单易行,但运用这种方式所得到的“宏”是把用户所有的操作步骤都一一记录在案(包括误操作和修复错误),因此这种“宏”往往体积庞大,不易管理。所以要想成为真正的“宏”专家,手工编写“宏”代码将是你的必修科目。  我们还是以实例来说明,比如说我们要对多处文字进行相同的格式调整:宋体、15磅大小、不加粗、倾斜、带下划线等,我们就可以通过编写一个“宏”来完成。  1.打开“工具”之“宏”菜单中的“宏”窗口,在出现的“宏”栏中输入新“宏”名“格式调整”,再击“创建”;  2.在系统打开的“MVB编辑器”中直接输入如下代码:  IfSelection.Type=wdSelectionIPThen  MsgBox″先选定文字!″  Else  Selection.Font.Name=″宋体″  Selection.Font.Size=15  Selection.Font.Bold=flase  Selection.Font.Italic=True  Selection.Font.Underline=True  EndIf  别看这些字符怪异而复杂,其实当你习惯之后,就会发现VB其实是一种非常体贴的语言:比如在你每次输完语句字头之后,系统都会将余下的步骤自动提示给你(见图6)。  现在,我们运行这个“宏”来试一试吧。先选定任一文字(如果不选定,系统会弹出“先选定文字!”对话框),再选择“工具”/“宏”/“宏”窗口中的“运行”按钮即可。怎么样,好玩吧!

  四、出师篇:随心所欲Word“宏”

当我们熟练掌握了VB的常用语句及语法习惯,那么Word在我们眼里将不再神秘。只要开动脑筋,勤于动手,我们每个人都可以是Word开发者,说不定2010版的OFFICE中就有你编写的模块呢。不信你瞧:  比如我们想要Word增加一项新的本领:那就是当我们启动、关闭、新建、打开、关闭Word或Word文档时,让Word将这些动作的日期和时间都一一记录下来,并保存到我们指定的文件中去。  1.打开“工具”之“宏”菜单中的“宏”窗口,在出现的“宏”栏中输入新“宏”名“记录本”,再击“创建”;  2.在系统打开的“MVB编辑器”中直接输入如下代码:  Subautoexc()  Dimusername  ′启动Word2000时,要求输入拥护名  username=InputBox(″请输入您的大名″)  ′如果不输入,退出Word2000  Ifusername=″″Then  Application.Quit  EndIf  Application.username=username  ′记录下运行Word2000的人及日期时间  Open″e:记录本.log″ForAppendAs1  Print#1,Application.username,″exec″,Date$,Time$  Close#1  EndSub  ′记录下退出Word2000的情况  Subautoexit()  Open″e:记录本.log″ForAppendAs1  Print#1,Application.username,″exit″,Date$,Time$  Close#1  EndSub  ′记录下新建一文件的情况  Subautonew()  Open″e:记录本.log″ForAppendAs1  Print#1,Application.username,″new″,Date$,Time$  Close#1  EndSub  ′记录下打开一文件的情况  Subautoopen()  Open″e:记录本.log″ForAppendAs1  Print#1,Application.username,″open″,Date$,Time$  Close#1  EndSub  ′记录下关闭一文件的情况  Subautoclose()  Open″e:记录本.log″ForAppendAs1  Print#1,Application.username,″close″,Date$,Time$  Close#1  EndSub  这样,在每次启动时Word2000都会询问用户的姓名,并且在工作期间,每当你新建、打开、关闭以及在你退出Word时,该“宏”都会把这些操作的日期和时间记录“记录本”文件中去。当然,你也可以根据自己的情况对它进行必要的修改,如果事实证明测试成功,那么你就可以自豪地宣布,“我的电脑”使用的是“我的Word”;如果你的“宏”在运行中报错也没关系,只须点击“工具”/“宏”/“宏”选项,再在弹出窗口中用“单步运行”逐个测试就可以很容易地发现问题所在,改正后即可正常运行了。  当然,入门仅仅只是个开始,如何真正地把“宏”调教得得心应手,就需要你自己在实践中慢慢摸索了。

在Mis系统的实际开发中,我们有时需要将当前页面上报表的数据以Word文档的格式下载到本地,这种实现并不困难。但是有时我们需要对下载的Word文档的格式做一些设置,比如标题颜色,字体大小,字间距等等,这时我们就要用到Word自带的宏功能。

比如我们想将此报表的标题在Word文档中以如下格式显示:14号字,加粗,居中对齐。首先我们需要在Word中录制相应的宏命令。打开Word,新建一文档,手动敲入一行字,然后选择工具->宏->录制新宏命令,为新宏取一个名字如Macro1,执行以上动作(14号字,加粗,居中对齐),Word自动将这些动作保存以相应的Vbscript命令。然后选择工具->宏->宏命令,选择刚才我们定义的宏Macro1,就可以查看其内容了。在此例中我们保存的宏命令如下:

Selection.ParagraphFormat.Alignment=wdAlignParagraphCenter'居中对齐Selection.Font.Bold=wdToggle'加粗显示Selection.Font.Size=14'14号字

因为宏命令的脚本语言是Vbscript,我们不需要做任何改动就可以将上面的语句在VB中使用。这样,我们就可以编写出如下VB代码,实现我们所要求的功能。代码如下:

WdApp.Selection.Font.Bold=wdToggle'加粗显示WdApp.Selection.Font.Size=14'14号字WdApp.Selection.TypeText("报表标题")'报表标题WdApp.Selection.ParagraphFormat.lignment=wdAlignParagraphCenter'居中对齐WdApp.Selection.Font.Bold=wdToggle'取消加粗

同样,我们如想对Word文档进行其他处理,重复以上的步骤就可以了。以下提供我的一个完整的对Word文档进行处理的例子:

PrivateFunctionSaveAsWord(ByRefMyRecordAsRecordset,ByValDocFileNameAsString,ByRefOutMessageAsString)AsInteger'*************************************************************************''说明:将数据集中的数据另存为DOC文件''参数:''MyRecord数据集'DocFileNameWORD文件的名称(无路径,路径见实例变量sPath)'OutMessage操作的的返回信息''返回:1成功-1失败''*************************************************************************'初始化Word应用err.ClearOnErrorGoToErr_AllDimWdAppAsWord.ApplicationSetWdApp=CreateObject("Word.Application")

'插入数据DimcolloopAsInteger'列号DimrowloopAsInteger'行号DimcolMaxAsInteger'列数DimrowMaxAsInteger'行数DimwdcellAsInteger'宽DimUnitEndAsInteger'截取结束点DimUnitNameAsString'单位名称DimBbDateAsString'报表期别wdcell=12colMax=MyRecord.Fields.countrowMax=MyRecord.RecordCount

WdApp.Documents.Add'获取报表单位UnitEnd=InStr(sBBDetail,"期别")UnitName=Mid(sBBDetail,1,UnitEnd-2)BbDate=Mid(sBBDetail,UnitEnd,Len(sBBDetail))IfMyRecord.Fields.count>=10ThenWdApp.ActiveDocument.PageSetup.Orientation=wdOrientLandscapeElseWdApp.ActiveDocument.PageSetup.Orientation=wdOrientPortraitEndIf'报表名称WdApp.Selection.Font.Bold=wdToggleWdApp.Selection.Font.Size=14WdApp.Selection.TypeText(sbbmc)WdApp.Selection.ParagraphFormat.lignment=wdAlignParagraphCenterWdApp.Selection.Font.Bold=wdToggleWdApp.Selection.TypeParagraph'报表单位名称WdApp.Selection.Font.color=wdColorBlackWdApp.Selection.Font.Size=11WdApp.Selection.TypeText(UnitName)WdApp.Selection.ParagraphFormat.Alignment=wdAlignParagraphCenterWdApp.Selection.TypeParagraph'报表期别WdApp.Selection.TypeText(BbDate)WdApp.Selection.ParagraphFormat.Alignment=wdAlignParagraphCenterWdApp.Selection.TypeParagraphWdApp.Selection.TypeParagraph'生成列头'wdApp.Selection.HomeKeywdLine,wdExtend'dApp.Selection.Font.Bold=wdToggle

WdApp.ActiveDocument.Tables.AddWdApp.Selection.Range,rowMax,colMaxDimiAsIntegerDoForcolloop=0TocolMax-1WdApp.Selection.Font.Size=9Ifi=0Then'表格中标题加粗显示WdApp.Selection.Font.Bold=wdToggle'表格标题行背景颜色设置为灰色,灰度为30WithWdApp.Selection.CellsWith.Shading.Texture=wdTextureNone.ForegroundPatternColor=wdColorAutomatic.BackgroundPatternColor=wdColorGray30EndWithEndWithEndIf'最后一行右对齐,其余左对齐Ifi>0ThenIfMyRecord.Fields.Item(colloop).Name="ZBMC"OrMyRecord.Fields.Item(colloop).Name="指标名称"ThenWdApp.Selection.ParagraphFormat.Alignment=wdAlignParagraphLeftElseWdApp.Selection.ParagraphFormat.Alignment=wdAlignParagraphRightEndIfEndIfIfi=0And(MyRecord.Fields.Item(colloop).Name="SXH"OrMyRecord.Fields.Item(colloop).Name="顺序号")ThenWdApp.Selection.TypeText("序号")ElseWdApp.Selection.TypeText(CStr(MyRecord.Fields.Item(colloop).value))EndIfIf(i<>rowMax-1Or(i=rowMax-1Andcolloop 有0人推荐   阅读(41)| 评论(0)| 引用(0) |举报 上一篇:2007年12月22日下一篇:离散数学考研试题

最近读者

评论

<#--最新日志--> <#--推荐日志--> <#--引用记录--> <#--相关日志--> <#--推荐日志--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->               

页脚

公司简介 - 联系方法 - 招聘信息 - 客户服务 - 相关法律- 

网易公司版权所有 ©1997-2010