欢迎来到天天文库
浏览记录
ID:40576799
大小:157.50 KB
页数:19页
时间:2019-08-04
《Word VBA学习交流资料之二》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WordVBA学习交流资料之二感 想:有感于国人的Word水平比较低,尤其是VBA这一块,本人想请大家一起学习VBA,在提高自身的能力同时帮助需要帮助的人。感谢:绿叶的建群之功,也感谢you兄的热烈支持,更感谢大家的大力支持!学前必备:WordVBA帮助(2003或别的都行,大体相当)(没有也没有关系,在这里,大多看到的就是复制自“帮助”的。)可选工具:金山词霸(对E文不太懂的人,尤其重要)语法工具:共享区的“VBA一串通”学习方法:“不求甚解”(一开始,不太懂,没关系,坚持下去就懂了。)学习步骤:看到
2、例子时,复制到VBE编辑器中运行一次,看一下结果(最好按F8,一步一步地看)必要指出:是“互学”,错误或不妥之处难免!因我也是一边看帮助,一边写。开始之前:高唱国歌(最好能喊:自强不息!)―――――――――――――――Start:一、通过录制宏生成代码如果无法确定要使用的VisualBasic方法或属性,可打开宏录制器并进行手动操作。宏录制器会将操作译成VisualBasic代码。录制操作完成后,可根据需要修改代码。例如,如果无法确定实现段落缩进的属性或方法,可执行下列操作:1.在“工具”菜单上,指向“宏
3、”,然后单击“录制新宏”。2.如果需要,可更改默认的宏名称,然后单击“确定”启动录制器。3.在“格式”菜单上,选定“段落”。4.更改段落左缩进的值,然后单击“确定”。5.单击“停止录制”工具栏上的“停止录制”按钮。6.在“工具”菜单上,指向“宏”,然后单击“宏”。7.从步骤2中选择宏的名称,然后单击“编辑”按钮。查看VisualBasic代码来确定对应于段落左缩进的属性(LeftIndent属性)。将插入点置于LeftIndent之中,并按F1或单击“帮助”按钮。在帮助主题中,可以查看示例以及支持Left
4、Indent属性的对象(单击“应用于”)。(从上面可以看出,录制宏是我们认识未知对象的很好方法之一,同时,也知道我为什么要大家装“金山词霸”的原因!如果你这个单词不认识,你怎么知道他是“左缩进”?当然,也有方法:就是把这个值设为一个比较特殊的值,再打特殊值所对应的属性)说明录制的宏使用Selection属性返回Selection对象。例如,下列指令将所选段落缩进0.5英寸。SubIndentParagraph()Selection.ParagraphFormat.LeftIndent=InchesToPo
5、ints(0.5)EndSub您也可以修改录制的宏并与Range对象一起使用。(我们在日常的使用中经常注意到:在使用“本机上的模板”是的向导就大量使用了Selection对象,而不是Range对象!难道说微软有更新层次的考虑?我想可能是Selection对象更稳定,跨版本能力更强吧!)二、修改录制的VisualBasic宏宏录制器是查找所需的VisualBasic方法和属性的非常方便的工具。如果不知道使用何种属性或方法,可打开宏录制器,手动执行操作。宏录制器会将操作译为VisualBasic代码。但录制宏
6、具有一些限制条件。您不能录制下列内容:条件分支变量指定循环结构自定义用户窗体出错处理用鼠标选定的文字(必须使用组合键)若要增强宏的功能,可能需要修改录制到模块中的代码。删除Selection属性使用宏录制器创建的宏取决于所选内容。在大多数录制的宏指令的开头,可以看到“Selection”。录制的宏使用Selection属性返回Selection对象。例如,下列示例将所选内容移动至Temp书签,并在书签之后插入文字。SubMacro1()Selection.GotoWhat:=wdGotoBookmark,
7、Name:="Temp"Selection.MoveRightUnit:=wdCharacter,Count:=1'相当于选中后按一个键盘的右方向键Selection.TypeTextText:="Newtext"EndSub这个宏虽然可以完成任务,但是有一些缺点。首先,如果文档中没有一个名为Temp的书签,该宏将导致出错。其次,该宏可能不正确地移动所选内容。修改这个宏,使其不再使用Selection对象,就可解决上述两个问题。以下就是经修改后的宏:SubMyMacro()IfActiveDocument
8、.Bookmarks.Exists("Temp")=TrueThenendloc=ActiveDocument.Bookmarks("Temp").EndActiveDocument.Range(Start:=endloc,_End:=endloc).InsertAfter"Newtext"'_ 就是续行的意思EndIfEndSubExists方法用于检查是否存在名为Temp的书签。如果找到该书签,则用End属性返回该书签结束
此文档下载收益归作者所有