WordVBA学习交流资料全Word文件下载.docx
- 文档编号:22006500
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:87
- 大小:76.82KB
WordVBA学习交流资料全Word文件下载.docx
《WordVBA学习交流资料全Word文件下载.docx》由会员分享,可在线阅读,更多相关《WordVBA学习交流资料全Word文件下载.docx(87页珍藏版)》请在冰豆网上搜索。
属性是对象的一种特性或该对象行为的一个方面.例如,文档属性包含其名称、内容、保存状态以及是否启用修订.若要更改一个对象的特征,可以修改其属性值.
若要设置属性的值,可在对象的后面紧接一个句号、属性名称、一个等号及新的属性值.下列示例在名为"
MyDoc.doc"
的文档中启用修订.
SubTrackChanges<
>
Documents<
"
Sales.doc"
.TrackRevisions=True
EndSub
在本例中,Documents引用由打开的文档〔注意是对打开后文档的操作构成的集合,而"
标识集合中单独的文档.并设置该文档的TrackRevisions属性.
不能设置某些属性.属性的"
帮助"
主题中会标明可以设置该属性〔可读写,或只能读取该属性〔只读.
通过返回对象的一个属性值,可以获取有关该对象的信息.下列示例返回活动文档的名称.
SubGetDocumentName<
DimstrDocNameAsString
strDocName=ActiveDocument.Name
MsgBoxstrDocName
〔这个例子输出的没有路径,只有名字.若带路径的话,把strDocName=ActiveDocument.Name改为:
strDocName=ActiveDocument.Path&
ActiveDocument.Name
在本例中,ActiveDocument引用Word活动窗口中的文档.该文档的名称赋给了strDocName变量.
说明:
每个属性的"
主题表明可以设置该属性〔可读写,只能读取该属性〔只读,或只能写入该属性〔只写.此外"
VisualBasic编辑器"
中的"
对象浏览器"
在浏览窗口的底部显示所选属性的读写状态.
什么是方法?
方法是对象可以执行的动作.例如,只要文档可以打印,Document对象就具有PrintOut方法.方法通常带有参数,以限定执行动作的方式.下列示例打印活动文档的前三页.
SubPrintThreePages<
ActiveDocument.PrintOutRange:
=wdPrintRangeOfPages,Pages:
="
1-3"
在大多数情况下,方法是动作,而属性是性质.使用方法将导致发生对象的某些事件<
所以,有人说:
方法是集成了的事件"
而使用属性则会返回对象的信息,或引起对象的某个性质的改变.
返回一个对象
可通过返回集合中单独的对象的方式来返回大多数对象.例如Documents集合包含打开的Word文档.可使用〔位于Word对象结构顶层的Application对象的Documents属性返回Documents集合.
在访问集合之后,可以通过在括号中使用索引序号〔与处理数组的方式相似返回单独的对象.索引序号通常是一个数值或名称.详细内容,请参阅返回集合中的对象.
下列示例使用Documents属性访问Documents集合.索引序号用于返回Documents集合中的第一篇文档.然后将Close方法应用于Document对象,关闭Documents集合中的第一篇文档.
SubCloseDocument<
.Close
'
这个可能以后大多不用,原因就是索引序号在变,当打开、关闭一个文档时,对应的序号就增加或减少了数字,所以不好把握,大多不用.
下列示例使用名称〔指定为一个字符串来识别Documents集合中的Document对象.
SubCloseSalesDoc<
这个常用,让某个指定的文档关闭.
集合对象通常具有可用于修改整个对象集合的方法和属性.Documents对象具有Save方法,可用于保存集合中的所有文档.下列示例通过使用Save方法保存所有打开的文档.
SubSaveAllOpenDocuments<
Documents.Save
所有的文档保存,相当于按住Shift再点击文件下的全部保存命令.
Document对象也可使用Save方法保存单独的文档.下列示例保存名为Sales.doc的文档.
SubSaveSalesDoc<
.Save
对指定的文档保存.
若要返回一个处于Word对象结构底层的对象,就必须使用可返回对象的属性和方法,"
深入"
到该对象.
若要查看该过程的执行,请打开"
在"
视图"
菜单上单击"
.单击左侧"
类"
列表中的Application.然后单击右侧"
成员"
列表中的ActiveDocument."
底部会显示文字,表明ActiveDocument是只读的,该属性返回Document对象.然后单击"
底部的Document,则会在"
列表中自动选定Document对象,并将在"
列表中显示Document对象的成员.滚动成员列表,找到Close,单击Close方法."
窗口底部会显示文字,说明该方法的语法.有关该方法的详细内容,请按F1〔作者注:
不把F1磨平,VBA很难真正掌握^-^或单击"
按钮,以跳转到Close方法的"
主题.
根据这些信息可编写下列指令,以关闭活动文档.
SubCloseDocSaveChanges<
ActiveDocument.CloseSaveChanges:
=wdSaveChanges
关闭并保存改变.这里显然,保存为方法,后面有参数
下列示例将活动文档窗口最大化.
SubMaximizeDocumentWindow<
ActiveDocument.ActiveWindow.WindowState=wdWindowStateMaximize
这个是赋最大化值属性给活动窗口
ActiveWindow属性返回一个Window对象,该对象代表活动窗口.将WindowState属性设为最大常量〔wdWindowStateMaximize.
下列示例新建一篇文档,并显示"
另存为"
对话框,这样即可为文档提供一个名称.
SubCreateSaveNewDocument<
这个有意思,添加新文档并保存,一步,利害吧
如果不是看帮助,你敢这么用吗?
方法.方法
Documents属性返回Documents集合.Add方法新建一篇文档,并返回一个Document对象.然后对Document对象应用Save方法.
如上所示,可以使用方法或属性来访问下层对象.也就是说,在对象结构中,将方法或属性应用于某个对象的上一级对象,可返回该下级对象.返回所需对象之后,就可以应用该对象的方法并控制其属性.要查看对象结构分层的情况,请参阅MicrosoftWord对象.
获得有关对象、方法和属性的"
信息
在熟悉Word对象模型之前,可以利用一些工具来深入了解对象结构.
自动成员列表.〔重要在"
中,在对象后面键入句号<
.>
后,即显示可用的属性和方法的列表.例如,如果键入"
Application."
就会显示Application对象的方法和属性的下拉列表.
帮助.也可以使用"
找到可应用于对象的属性和方法."
中的每个对象主题都包含一个"
参阅"
跳转,以显示该对象的属性和方法列表.在"
或某一模块中按F1,可跳转到相应的"
主题.
MicrosoftWord对象.该主题阐明在分级结构中Word对象的排列方式.在结构图中单击一个对象,可显示相应的"
对象浏览器."
显示Word对象的成员〔属性和方法.
-----------------------------------------
实例:
打开Word后,按Alt+F11,出现VBE窗口,
双击右边的Thisdocument〔当然,放到底下的模块中任一个也行,输入如下内容:
Subautoexec<
Application.Caption="
我爱我家!
这时,关闭Word,再打开Word.
你的标题就有"
×
.doc—我爱我家!
了!
图表2
当然,也可以进一步做成这样:
Dima
a=MsgBox<
我家我家"
vbYesNo,"
这是一个试验"
Ifa<
6Then
Application.Quit
EndIf
功能就是打开Word时,显示此对话框,如果点了"
是"
就不作处理即打开Word,否则,退出Quit.
也可以写成这样:
a=InputBox<
你的姓名"
"
防君子,不防小人!
"
小小"
Then
功能就是打开Word时,显示此对话框,如果输入的不是小小,就打不开.
MsgBox函数参考:
在对话框中显示消息,等待用户单击按钮,并返回一个Integer告诉用户单击哪一个按钮.
语法
MsgBox<
prompt[,buttons][,title][,helpfile,context]>
MsgBox函数的语法具有以下几个命名参数:
部分描述
Prompt必需的.字符串表达式,作为显示在对话框中的消息.prompt的最大长度大约为1024个字符,由所用字符的宽度决定.如果prompt的内容超过一行,则可以在每一行之间用回车符<
Chr<
13>
、换行符<
10>
或是回车与换行符的组合<
&
Chr<
将各行分隔开来.
Buttons可选的.数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等.如果省略,则buttons的缺省值为0.
Title可选的.在对话框标题栏中显示的字符串表达式.如果省略title,则将应用程序名放在标题栏中.
Helpfile可选的.字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件.如果提供了helpfile,则也必须提供context.
Context可选的.数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号.如果提供了context,则也必须提供helpfile.
设置值
buttons参数有下列设置值:
常数值描述
vbOKOnly0只显示OK按钮.
VbOKCancel1显示OK及Cancel按钮.
VbAbortRetryIgnore2显示Abort、Retry及Ignore按钮.
VbYesNoCancel3显示Yes、No及Cancel按钮.
VbYesNo4显示Yes及No按钮.
VbRetryCancel5显示Retry及Cancel按钮.
VbCritical16显示CriticalMessage图标.
VbQuestion32显示WarningQuery图标.
VbExclamation48显示WarningMessage图标.
VbInformation64显示InformationMessage图标.
vbDefaultButton10第一个按钮是缺省值.
vbDefaultButton2256第二个按钮是缺省值.
vbDefaultButton3512第三个按钮是缺省值.
vbDefaultButton4768第四个按钮是缺省值.
vbApplicationModal0应用程序强制返回;
应用程序一直被挂起,直到用户对消息框作出响应才继续工作.
vbSystemModal4096系统强制返回;
全部应用程序都被挂起,直到用户对消息框作出响应才继续工作.
vbMsgBoxHelpButton16384将Help按钮添加到消息框
VbMsgBoxSetForeground65536指定消息框窗口作为前景窗口
vbMsgBoxRight524288文本为右对齐
vbMsgBoxRtlReading1048576指定文本应为在希伯来和阿拉伯语系统中的从右到左显示
第一组值<
0–5>
描述了对话框中显示的按钮的类型与数目;
第二组值<
16,32,48,64>
描述了图标的样式;
第三组值<
0,256,512>
说明哪一个按钮是缺省值;
而第四组值<
0,4096>
则决定消息框的强制返回性.将这些数字相加以生成buttons参数值的时候,只能由每组值取用一个数字.
注意这些常数都是VisualBasicforApplications<
VBA>
指定的.结果,可以在程序代码中到处使用这些常数名称,而不必使用实际数值.
返回值
常数值描述
vbOK1OK
vbCancel2Cancel
vbAbort3Abort
vbRetry4Retry
vbIgnore5Ignore
vbYes6Yes
vbNo7No
说明
如果对话框显示Cancel按钮,则按下ESC键与单击Cancel按钮的效果相同.如果对话框中有Help按钮,则对话框中提供有上下文相关的帮助.但是,直到其它按钮中有一个被单击之前,都不会返回任何值.
注意如果还要指定第一个命名参数以外的参数,则必须在表达式中使用MsgBox.为了省略某些位置参数,必须加入相应的逗号分界符.
一、通过录制宏生成代码
如果无法确定要使用的VisualBasic方法或属性,可打开宏录制器并进行手动操作.宏录制器会将操作译成VisualBasic代码.录制操作完成后,可根据需要修改代码.例如,如果无法确定实现段落缩进的属性或方法,可执行下列操作:
1.在"
工具"
菜单上,指向"
宏"
然后单击"
录制新宏"
.
2.如果需要,可更改默认的宏名称,然后单击"
确定"
启动录制器.
3.在"
格式"
菜单上,选定"
段落"
4.更改段落左缩进的值,然后单击"
5.单击"
停止录制"
工具栏上的"
按钮.
6.在"
7.从步骤2中选择宏的名称,然后单击"
编辑"
查看VisualBasic代码来确定对应于段落左缩进的属性〔LeftIndent属性.将插入点置于LeftIndent之中,并按F1或单击"
按钮.在帮助主题中,可以查看示例以及支持LeftIndent属性的对象〔单击"
应用于"
.
〔从上面可以看出,录制宏是我们认识未知对象的很好方法之一
录制的宏使用Selection属性返回Selection对象.例如,下列指令将所选段落缩进0.5英寸.
SubIndentParagraph<
Selection.ParagraphFormat.LeftIndent=InchesToPoints<
0.5>
您也可以修改录制的宏并与Range对象一起使用.
〔我们在日常的使用中经常注意到:
在使用"
本机上的模板"
时的向导就大量使用了Selection对象,而不是Range对象!
难道说微软有更新层次的考虑?
我想可能是Selection对象更稳定,跨版本能力更强吧!
二、修改录制的VisualBasic宏
宏录制器是查找所需的VisualBasic方法和属性的非常方便的工具.如果不知道使用何种属性或方法,可打开宏录制器,手动执行操作.宏录制器会将操作译为VisualBasic代码.但录制宏具有一些限制条件.您不能录制下列内容:
条件分支
变量指定
循环结构
自定义用户窗体
出错处理
用鼠标选定的文字〔必须使用组合键
若要增强宏的功能,可能需要修改录制到模块中的代码.
删除Selection属性
使用宏录制器创建的宏取决于所选内容.在大多数录制的宏指令的开头,可以看到"
Selection"
.录制的宏使用Selection属性返回Selection对象.
例如,下列示例将所选内容移动至Temp书签,并在书签之后插入文字.
SubMacro1<
Selection.GotoWhat:
=wdGotoBookmark,Name:
Temp"
Selection.MoveRightUnit:
=wdCharacter,Count:
=1
'
相当于选中后按一个键盘的右方向键
Selection.TypeTextText:
Newtext"
这个宏虽然可以完成任务,但是有一些缺点.首先,如果文档中没有一个名为Temp的书签,该宏将导致出错.其次,该宏可能不正确地移动所选内容.修改这个宏,使其不再使用Selection对象,就可解决上述两个问题.以下就是经修改后的宏:
SubMyMacro<
IfActiveDocument.Bookmarks.Exists<
=TrueThen
endloc=ActiveDocument.Bookmarks<
.End
ActiveDocument.Range<
Start:
=endloc,_
End:
=endloc>
.InsertAfter"
_ 就是续行的意思
EndIf
Exists方法用于检查是否存在名为Temp的书签.如果找到该书签,则用End属性返回该书签结束字符的位置.最后使用Range方法返回一个引用书签结束位置的Range对象,以使用InsertAfter方法插入文字.有关定义Range对象的详细信息,请参阅处理Range对象.
使用With…EndWith
可使用With…EndWith结构简化引用相同对象的宏指令.例如,在文档顶部添加标题时,将录制下面的宏.
Selection.HomeKeyUnit:
=wdStory
Title"
Selection.ParagraphAlignment.Alignment=wdAlignParagraphCenter
每个指令都使用Selection属性返回一个Selection对象.可以简化这个宏,这样只需使用一次Selection属性.
WithSelection
.HomeKeyUnit:
.TypeTextText:
.ParagraphAlignment.Alignment=wdAlignParagraphCenter
上面那句是原帮助中的,但肯定是笔误!
微软没看出?
!
.ParagraphFormat.Alignment=wdAlignParagraphCenter
EndWith
不使用Selection对象也可以完成相同的任务.下面的宏在活动文档的开头使用Range对象来完成相同的任务.
WithActiveDocument.Range<
=0,End:
=0>
.InsertAfter"
删除不必要的属性
如果录制了一个关于在对话框中选择选项的宏,即使只更改一个或两个选项,宏录制器也会记录该对话框中的所有选项的设置.如果不希望更改所有的选项,可从录制的宏中删除不必要的属性.下面录制的宏包含"
对话框的一些选项〔单击"
菜单可显示该对话框的所有信息.
WithSelection.ParagraphFormat
.LeftIndent=InchesToPoints<
0>
左缩进0英寸
.RightIndent=InchesToPoints<
右缩进0英寸
.SpaceBefore=6'
段前距6磅
.SpaceAfter=6'
段后距6磅,下面不写了!
.LineSpacingRule=0
.Alignment=wdAlignParagraphLeft
.WidowControl=True
.KeepWithNext=False
.KeepTogether=False
.PageBreak
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WordVBA 学习 交流 资料