目 录
运用application对象
运用document对象
运用range对象
运用selection对象
运用find和replacement对象
运用table, column, row,和 cell对象
运用其他普通对象
判断对象是否有效
修改word 命令
运用事件
使用自动宏
使用自动化
visual basic支持一个对象集合,该集合中的对象直接对应于microsoft word 97中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。例如,document 对象代表了一个打开的文档,bookmark对象代表了一个文档中的书签,而selection对象则代表了在一个文档窗口窗格中的选定内容。在word中,每一类元素-文档、表格、段落、书签、域等等-都可以用visual basic的对象来表示。要在word中自动执行任务,可以使用这些对象的方法和属性。
关于理解和使用microsoft office 97对象模型的一般性内容,请参阅本书的第二章“理解对象模型”。在microsoft office 97中的对象模型相当丰富,其中包含了大约180个对象。要查看word对象模型的层次关系图,请参阅“帮助”中的“microsoft word 对象”。要获得对某种特定对象的详细描述,可以在此图中单击该对象的名字,或是在“帮助”的索引中对特定对象进行搜索。
怎样显示word visual basic帮助
要使用word visual basic帮助,必须在安装过程中选择“自定义”的安装方式,并且为word选中“visual basic在线帮助”复选框。否则,安装程序不会安装visual basic帮助。如果用户已经安装好了word,那么可以再次运行setup程序来安装visual basic帮助。
要查看word visual basic 帮助,可以在“visual basic 编辑器里的“帮助”菜单中点击“目录和索引”一项。在“帮助主题”对话框的“目录”一表中,双击“microsoft word visual basic 参考”,然后再双击“visual basic 参考”。“帮助主题”对话框会重新出现,显示出microsoft word visual basic的目录和索引。
运用application 对象
在用户启动一个word 时段的同时,也创建了一个application对象。用户可以使用application 对象的属性或方法来控制或返回应用程序范围内的特性、控制应用程序窗口的外观或者调整word 对象模型的其他方面。可以使用application属性来返回word application 对象。以下的示例从视图状态切换到打印预览状态。
application. printpreview = true
application对象的一些属性控制着应用程序的外观。例如,如果displaystatusbar属性为true(真),那么状态栏是可见的,如果windowstate属性值为wdwindowstatemaximize,那么应用程序窗口处于最大化状态。以下的示例设置了屏幕上应用程序窗口的大小。
with application
.windowstate = wdwindowstatenormal
.height = 450
.width = 600
end with
application对象的属性也可以访问处于对象层次中较低级的对象,比如windows集合(代表了当前所有打开的窗口)和documents集合(代表了当前所有打开的文档)。用户可以使用属性,有时候也叫做访问者,从对象层次中最高一级的application对象向下访问到较低级的对象(document对象、window对象、 selection对象等等)。可以使用以下两个示例之一来打开mydoc.doc。
application. documents. open filename :="c:\docs\mydoc.doc"
documents. open filename :="c:\docs\mydoc.doc"
因为document属性是共用的,所以application属性是可选的。共用属性和方法无需application 对象限定符。要在“对象浏览器”中浏览共用属性和方法的列表,可以在“类别”栏中单击“<共用>”。共用项就会列在“成员”栏中。
注释 option对象包含了控制word 共用行为的一些属性。许多option对象的属性对应于option对话框中的各项(tools 菜单)。使用application 对象的option属性可以返回option 对象。以下的示例设置了三个应用程序范围内的选项(因为option属性是共用的,所以在本示例中无需application属性)。
with application.options
.allowdraganddrop = true
.confirmconversions = false
.measurementunit = wdpoints
end with
运用document对象
当用户在word中打开或创建一个文件的同时,也创建了一个document对象。用户可以使用document对象或documents集合的属性或方法来打开、创建、保存、激活或者关闭文件。
返回document对象
用户可以使用语法documents (index)来返回作为一个document对象的任何打开的文档,在这里index是该文档的名字或索引号。在以下的示例中,变量mydoc包含一个document对象,该对象代表名为“report.doc”的打开的文档。
set mydoc = documents ("report.doc")
索引号代表了文档在documents集合中的位置。在以下的示例中,变量mydoc包含了一个document对象,该对象代表documents集合中的第一个文档。
set mydoc = documents(1)
注释 因为当用户添加或关闭多个文档时,某个特定文档的索引号会发生改变,所以最好使用文档的名字来对documents集合中的document对象进行索引。
除了通过文档的名字或索引号来引用文档,还可以使用activedocument属性来返回一个引用活动文档(当前着眼的文档)的document对象。以下的示例显示产活动文档的名字;如果没有打开的文档,则该示例显示一条消息。
if documents. count >= 1 then
msgbox activedocument. name
else
msgbox "no documents are open"
end if
打开文档
要打开一个已经存在的文档,可以使用open方法。open方法应用于通过document属性返回的documents集合。以下的示例打开了文件test.doc(从当前文件夹)并且启动了更改跟踪。
set mydoc = documents. open (filename :="test.doc")
mydoc. trackrevisions = true
注意到在上例中open方法的返回值是一个document对象,该对象表示刚被打开的文档。在此示例中的文件名不包含路径;因此,是假定了该文件在当前的文件夹中。但这会导致出现一个运行时错误,因为一旦用户创建了与当前文件夹不同的文件夹,visual basic就再也找不到该文件了。但是,用户可以通过指明完整的路径,就如同下表所示的那样,来确保打开正确的文件。
操作系统
filename参数
windows
filename :="c:\documents\temporary file.doc"
macintosh
filename :="hard drive:documents:temporary file"
如果用户的宏只用于一种文件系统,那么可以在filename参数中指定路径分隔符(“\”或者“:”),就如同上表所示的那样。以下示例显示了与文件系统无关的代码,可以用来打开sales.doc,并且假定sales.doc已经保存在word 的程序文件夹中。
programpath = options. defaultfilepath (wdprogrampath)
documents. open filename :=programpath & application. pathseparator & "sales.doc"
pathseparator属性返回当前文件系统(例如,“\”用于ms-dos/windows的文件分配表,或者“:”用于macintosh)的正确的文件分隔符。defaultfilepath属性返回文件的位置,比如文档所在文件夹的路径、程序文件夹或者当前文件夹。
如果所指定的文件名既没有在当前文件夹(如果没有指定路径)出现也没有在指定的文件夹(如果指定了路径)中出现,那么就会发生错误。以下的示例使用filesearch对象的属性和方法来判断名为“test.doc”的文件是否存在于用户的默认文档文件夹中。如果找到了该文件(foundfiles. count = 1),那么就打开它;否则,显示一条消息。
defaultdir = options. defaultfilepath (wddocumentspath)
with application. filesearch
.filename = "test.doc"
.lookin = defaultdir
.execute
if .foundfiles. count = 1 then
documents. open filename :=defaultdir & application. pathseparator & "test.doc"
else
msgbox "test.doc file was not found"
end if
end with
也可以允许用户选择要打开的文件,而不是定死open方法的filename参数值。如同以下示例所示的那样,可以使用带有wddialogfileopen常量的dialogs属性来返回一个dialog 对象,该对象表示“打开”对话框(在“文件”菜单中)。show方法可以显示并且执行在“打开”对话框中完成的动作。
dialogs (wddialogfileopen). show