vb操作word详解(二)

前端之家收集整理的这篇文章主要介绍了vb操作word详解(二)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

运用Find和Replacement对象

可以使用Find和Replacement对象来查找并且替换文档中文字的特定范围。Find对象可以在Selection对象或Range对象中使用(根据Find对象是从Selection对象还是从Range对象返回的,查找操作也略有不同)。

使用Selection.Find

如果是在Selection对象中使用Find对象,那么当找到符合选择条件的文本后选定内容将会改变。以下的示例选定下一次出现的单词“Hello”。如果在找到单词“Hello”之前已经到达了文档的末尾,那么停止搜索

With Selection. Find

.Forward = True

.Wrap = wdFindStop

.Text = "Hello"

.Execute

End With

Find对象包含与“查找”和“替换”对话框(在“编辑”菜单中)里的选项有关的属性用户既可对Find对象的属性逐一进行设置,也可以随同Execute方法使用参数来进行设置,如果以下示例所示。

Selection. Find. Execute FindText :="Hello",Forward :=True,Wrap :=wdFindStop

使用Range.Find

如果是在Range对象中使用Find对象,选定内容不会改变,但是当找到符合选择条件的文本时范围会被重新定义。以下的示例确定活动文档中第一次出现的单词“blue”的位置。如果查找操作成功,将重新定义范围并且设置单词“blue”的格式为粗体。

With ActiveDocument. Content. Find

.Text = "blue"

.Forward = True

.Execute

If .Found = True Then .Parent.Bold = True

End With

以下的示例执行了和上述示例相同的操作,只是使用了Execute方法的参数。

Set myRange = ActiveDocument. Content

myRange. Find. Execute FindText :="blue",Forward :=True

If myRange. Find. Found = True Then myRange. Bold = True

使用Replacement对象

Replacement对象表示查找-替换操作的替换条件。Replacement对象的属性方法对应于“查找”和“替换”对话框(在“编辑”菜单中)里的选项。

可以在Find对象中使用Replacement对象。以下的示例将所有出现单词“hi”的地方替换为“hello”。当找到符合选择条件的文本时,选定内容将会改变,因为代码从Selection对象返回Find对象。

With Selection. Find

.ClearFormatting

.Text = "hi"

.Replacement. ClearFormatting

.Replacement. Text = "hello"

.Execute Replace :=wdReplaceAll,Wrap :=wdFindContinue

End With

以下的示例去除了活动文档中所有的粗体格式。Bold属性对Find对象为True(真),对Replacement属性为False(假)。要查找和替换格式,需设置查找和替换文本为空字符串(“”),并且设置Execute方法的Format参数为True(真)。选定内容保持不变,因为代码在Range对象中返回Find对象(Content属性返回一个Range对象)。

With ActiveDocument. Content. Find

.ClearFormatting

.Font. Bold = True

With .Replacement

.ClearFormatting

.Font. Bold = False

End With

.Execute FindText :="",ReplaceWith :="",Format :=True,Replace :=wdReplaceAll

End With

 

运用Table、Column、Row和Cell对象

Word对象模型包含了表格对象,也包含了表格中各种不同元素的对象。可以随同Document对象、Range对象、Selection对象使用Table属性来返回Table集合。Table(index)返回了一个单独的Table对象,在这里index是表格的索引号。索引号代表在选定内容、范围或文档中表格的位置。以下的示例将选定内容中的第一个表格转换为文本。

If Selection. Tables. Count >= 1 Then

Selection. Tables(1). ConvertToText Separator :=wdSeparateByTabs

End If

可以随同Column对象、 Range 对象、Row对象或 Selection对象使用Cells属性来返回Cells集合。用户可以通过使用Table对象的Cell方法或是索引Cells集合来获得一个Cell对象。以下的两条语句都能够设置myCell为一个Cell 对象,该Cell对象代表活动文档中表格一的第一个单元格。

Set myCell = ActiveDocument. Tables(1). Cell(Row :=1,Column :=1)

Set myCell = ActiveDocument. Tables(1). Columns(1). Cells(1)

注释 要在一个表格的一个单元格中插入文字,可以使用Text属性、InsertAfter方法或者随Range对象使用InsertBefore方法。可以随Cell对象使用Range属性来返回一个Range对象。以下的示例在表格一的每一个单元格中插入连续的单元格序号。

i = 1

For Each c In ActiveDocument. Tables(1). Range. Cells

c. Range. InsertBefore Text :="Cell " & i

i = i + 1

Next c

可以随同Table对象、Range对象或Selection对象使用Column属性来返回Columns集合。Columns(index)返回了一个单独的Column对象,在这里index是索引号。以下的示例选择了表格一的第一列。

ActiveDocument. Tables(1). Columns(1). Select

可以随同Table对象、Range对象或Selection对象使用Row属性来返回Rows集合。Rows(index)返回了一个单独的Row对象,在这里index是索引号。以下的示例给表格一的第一行加底纹。

ActiveDocument. Tables(1). Rows(1). Shading. Texture = wdTexture10Percent

修改图形表格的行与列

用户试图使用在一个图形表格(或者任何表格,其中有两个以上相邻的单元格被合并,但是行与列没有统一)中某一单独的行或列时,就可能出现一个运行时错误。如果活动文档中的第一个表格的每列含有不一致的行号,以下的示例就会出错。

ActiveDocument. Tables(1). Rows(1). Borders.Enable = False

用户可以首先使用SelectColumn或SelectRow方法来选定某个特定行或列的单元格,以此避免这样的错误。当用户选好了行或列,再随Selection对象使用Cells属性。以下的示例选定了活动文档中表格一的第一行。该示例使用Cells属性返回所选的单元格(在第一行中所有单元格),以便可以删除边框。

If ActiveDocument. Tables(1). Uniform = False

ActiveDocument. Tables(1). Cell(1,1). Select

With Selection

.SelectRow

.Cells. Borders. Enable = False

End With

End If

以下的示例选定了表格一的第一列。该示例使用了一个For Each...Next循环来向选定内容(第一列的所有单元格)中的每个单元格添加文字

If ActiveDocument. Tables(1). Uniform = False

ActiveDocument. Tables(1). Cell(1,1). Select

Selection. SelectColumn

i = 1

For Each oCell In Selection. Cells

oCell.Range. Text = "Cell " & i

i = i + 1

Next oCell

End If

 

运用其他普通对象

本节提供了关于运用一些普通Word对象的信息和技巧。

使用HeaderFooter对象

HeaderFooter对象既可以表示一个页眉也可以表示一个注脚。HeaderFooter对象是HeaderFooter集合的一个成员,它可以在Section对象中使用。Headers(index)或Footer(index)属性返回了一个单独的HeaderFooter对象,在这里index是WdHeaderFooterIndex常量的一个值。

以下的示例创建了一个Range对象(aRange),该对象表示活动文档第一节的主要注脚。在该示例设置Range对象之后,它删除了已有的注脚文本。它还向注脚添加了AUTHOR域以及两个表和FILENAME域。

Set oRange = ActiveDocument. Sections(1). Footers (wdHeaderFooterPrimary). Range

With oRange

.Delete

.Fields. Add Range :=oRange,Type :=wdFieldFileName,Text :="/p"

.InsertAfter Text :=vbTab

.InsertAfter Text :=vbTab

.Collapse Direction :=wdCollapseStart

.Fields.Add Range :=oRange,Type :=wdFieldAuthor

End With

注释 PageNumbers集合仅仅能在HeaderFooter对象中使用。可以对PageNumbers集合应用Add方法来向一个页眉或注脚添加页码

使用Styles集合

Styles集合可以在Document对象中使用。以下的示例改变了活动文档中“标题1”样式的格式。

ActiveDocument. Styles (wdStyleHeading1). Font. Name = "Arial"

Styles集合不能在Template对象中使用。如果想修改一个模板中的样式,可以使用OpenAsDocument方法按文档来打开模板,这样用户就可以对样式进行修改。以下的示例改变了活动文档所附的模板中“标题1”样式的格式。

Set aDoc = ActiveDocument. AttachedTemplate. OpenAsDocument

With aDoc

.Styles(wdStyleHeading1). Font. Name = "Arial"

.Close SaveChanges :=wdSaveChanges

End With

指定CommandBars

在使用CommandBars集合(表示菜单栏和工具栏)之前,可以使用CustomizationContext属性来设置保存着对菜单栏和工具栏的更改的Template或Document对象。以下的示例给“格式”工具栏添加了“双下划线”命令。因为自定义更改保存在Normal模板中,所有的文档都会受到影响。

CustomizationContext = NormalTemplate

CommandBars ("Formatting"). Controls. Add Type :=msoControlButton,_

ID :=60,Before :=7

要了解关于菜单栏和工具栏的更改范围的更多信息,请参阅第八章,“菜单栏和工具栏”。

使用Dialogs集合

可以使用Dialogs属性返回Dialogs集合,该集合表示内置Word对话框(例如,“打开”和“保存”对话框等)。用户不能新建内置对话框,也不能向Dialogs集合添加内置对话框。要了解关于创建用ActiveX控件创建自定义对话框的内容,请参阅第十二章,“ActiveX 控件和对话框”。

返回MailMerge和MailMerge对象

可以使用Document对象的MailMerge属性来返回一个MailMerge对象。无论所指定的文档是否是一个邮件合并文档,都可以使用MailMerge属性。在用户使用Execute方法执行合并之前,可以使用State属性来确定邮件合并操作的状态。如果活动文档是附加了数据源的主文档,那么以下的示例将执行邮件合并。

Set myMerge = ActiveDocument.MailMerge

If myMerge. State = wdMainAndDataSource Then myMerge. Execute

使用Document对象的Envelope属性可以返回一个Envelope对象。无论用户是否向所指定的文档添加了一个信封,都可以使用Envelope对象。但是,如果用户使用以下属性而没有向文档添加信封,那么会出现错误:Address属性,AddressFromLeft属性,AddressFromTop属性FeedSource属性, ReturnAddress属性,ReturnAddressFromLeft属性, ReturnAddressFromTop属性或 UpdateDocument属性

以下的示例使用On Error GoTo语句来捕获用户没有向活动文档添加信封的错误。但是,如果用户已经向文档添加了信封,将显示收件人地址。

On Error GoTo ErrorHandler

MsgBox ActiveDocument. Envelope. Address

ErrorHandler:

If Err = 5852 Then MsgBox "Envelope is not in the specified document"

在文档中添加和编辑域

用户可以通过对Field集合应用Add方法来给文档添加域。以下的示例添加了一个DATE域来替换选定内容

ActiveDocument. Fields. Add Range:=Selection. Range,Type :=wdFieldDate

添加一个域之后,用户可以通过使用Result或Code属性来返回或设置域结果和域代码,这两种属性都可以返回一个Range对象。以下的示例更改选定内容的第一个域代码,更新该域,然后显示域结果。

If Selection. Fields. Count >= 1 Then

With Selection. Fields (1)

.Code. Text = "CREATEDATE /*MERGEFORMAT"

.Update

MsgBox . Result. Text

End With

End If

InlineShape对象同Shape对象的对比

一个Shape对象代表图形层的一个对象,诸如自选图形、任意多边形、OLE对象、ActiveX控件、图片等。Shape对象锁定于文本范围内,但是能够任意移动,使用户可以将它们定位于页面的任何位置。要了解运用Shape对象的信息,请参阅第十章,“形状和图形层”,也可以参阅“帮助”中的“Shape对象”。

一个InlineShape对象代表文档文字层的一个对象。一个嵌入式形状可能是图片、OLE对象或ActiveX控件。可以将InlineShape对象视为字符,并将其象字符一样放在一行文本中。要了解关于InlineShape对象的信息,请参阅“帮助”中的“InlineShape集合对象”或“InlineShape对象”。

在Word窗体中使用FormField对象

用户可以创建一个Word在线窗体,该窗体包含复选框、文本文本框和下拉式列表框。使用“窗体”工具栏可以插入这些窗体元素。对应的Visual Basic对象是CheckBox,TextInput,和DropDown。所有这些对象都可以在FormFields集合的任何一个FormField对象中使用;但是,用户应当使用按照窗体域的类型使用相应的对象。例如,以下命令从活动文档的“Check1”域中选择复选框。

ActiveDocument. FormFields ("Check1").CheckBox. Value = True

除了“窗体”工具栏中的窗体元素之外,用户还可以向一个在线窗体添加ActiveX控件。使用“控件工具箱”可以插入ActiveX控件。用户可以把控件插入文字层或图形层;控件将分别由一个InlineShape 对象或一个Shape对象来表示。要了解关于运用ActiveX控件的更多内容,请参阅第十二章,“ActiveX控件和对话框”。

 

判断对象是否有效

可以通过在用户代码中包含判断语句来判断由一个表达式返回的特定对象或者一个变量所引用的对象是否有效,以此避免代码在运行时的错误。本节讨论了一些检查表达式返回值或变量保存值有效性的技术。

用户可以随同一个变量或表达式使用TypeName函数来确定对象的类型。如果Selection. NextField返回了一个Field对象,那么以下的示例将在状态栏中显示一条消息。

If TypeName (Selection. NextField) = "Field" Then StatusBar = "A field was found"

以下示例的功能等价于上述示例;不同之处仅在于它使用一个对象变量(myField)来保存NextField方法的返回值。

Set myField = Selection. NextField

If TypeName (myField) = "Field" Then StatusBar = "A field was found"

如果指定的变量或表达式不代表一个对象,它对Nothing求值。如果NextField方法没有返回Nothing(也就是说,如果NextField方法返回了一个Field对象,它只是其他的可能返回值),那么以下的示例将对myField应用Update方法

Set myField = Selection. NextField

If Not (myField Is Nothing) Then myField. Update

Word包含共用的IsObjectValid属性。可以使用该属性来判断一个被某个变量所引用的对象是否有效。如果变量所引用的对象已经被删除了,那么该属性返回False。以下的示例向活动文档添加一个表格,并且把它赋值给变量aTable。该示例从文档中删除了第一个表格。如果aTable引用的表格不是文档中的第一个表格(也就是说,如果aTable仍然是一个有效的对象),那么该示例删除表格的边框。

Set aTable = ActiveDocument. Tables. Add(Range :=Selection. Range,NumRows :=2,_

NumColumns:=3)

ActiveDocument. Tables(1).Delete

If IsObjectValid (aTable) = True Then aTable. Borders. Enable = False

 

修改Word命令

用户可以通过把命令转变为宏来对绝大多数Word命令进行修改。例如,可以“文件菜单中的“打开”命令,使Word显示当前文件夹中的每一个文件,而不是只显示Word文档文件列表(在Windows中,控制名为.doc的文件)。

要在“宏”对话框(在“工具”菜单中)里显示内置Word命令的列表,可以在该对话框中“宏的位置”一栏里选中“Word 命令”。在该对话框中就会列出每一个可用的菜单、工具栏或快捷键命令。每个菜单命令用与该命令关联的菜单名开头。例如,在“文件菜单中的“保存”命令显示为“FileSave”。

用户可以通过给宏取和Word命令相同的名字来用一个宏替换一条Word命令。例如,如果用户创建了一个名为“FileSave”的宏,当用户:在“文件菜单中单击“保存”、在“常用”工具栏中单击“保存”按钮或按下给FileSave指定的快捷键时,Word将运行该宏。

修改Word命令

在“工具”菜单中,用鼠标指向“宏”,然后单击“宏的位置”。

在“宏的位置”一栏中,单击“Word 命令”。

在“宏名”一栏中,选中要修改的Word命令(例如,FileSave)。

在“宏的位置”一栏中,选择要保存宏的模板或文档的位置。例如,单击Normal.dot(共用模板)来创建一个共用宏(FileSave命令将会自动地对所有文档进行修改)。

单击“创建”。

Visual Basic编辑器被打开,其中显示出一个模块,该模块包含有一个与刚才被选中的命令同名的新过程。如果选中了FileSave命令,那么就出现FileSave宏,如以下示例所示。

Sub FileSave()

FileSave Macro

Saves the active document or template

保存活动文档或模板

ActiveDocument.Save

End Sub

用户可以添加附加的命令或删除已有的ActiveDocument. Save命令。FileSave命令每次运行时,FileSave宏都将Word命令来执行。要恢复原来的FileSave命令,需要更改FileSave宏的名字或删除它。

注释 用户还可以通过创建与Word命令(例如,FileSave)同名的代码模块来用一个名为“Main”的子例程替换一条Word命令。

 

运用事件

一个事件既可以是一个被对象识别的操作(比如,打开一个文档或者从应用程序退出),也可以是一个能够编写代码来响应的操作。一个用户的操作或一段程序代码都可以导致事件的发生,事件也可以由系统引起。Word所支持的事件均列在下表中,该表还列出了ActiveX控件事件,它们将在第十二章“ActiveX控件和对话框”中进行讨论。

要了解关于运用Word事件的信息,请参阅下列“帮助”主题:“使用Document对象的事件”、“使用ActiveX控件的事件”以及“使用Application对象的事件”。

Document事件

用户打开或关闭一个已经存在的文档时,或者用户在新建一个文档时,就发生了文档事件,如以下示例所示。

事件描述

关闭一个文档时发生Close事件。

当创建一个基于模板的新文档时发生New事件。

当打开一个文档时发生Open事件。

一个文档事件过程的范围取决于它保存的位置。如果在一个文档中保存Open或Close事件过程,那么该过程仅当用户关闭或打开该文档时才发生;如果在一个模板中保存Open或Close事件,那么当打开或关闭基于该模板的文档或该模板本身时,该过程才发生。一个新事件过程必须保存在模板中;一个保存在文档中新事件过程决不会运行,因为文档只能基于模板来创建。

以下的示例在打开文档时将Word应用程序的窗口扩至最大状态。

Private Sub Document_Open()

Application. WindowState = wdWindowStateMaximize

End Sub

ActiveX控件事件

Word为Word文档中的ActiveX控件执行LostFocus 和 GotFocus事件。

事件描述

在焦点移开嵌入式 ActiveX 控制时发生LostFocus事件。

当焦点移至内嵌式 ActiveX 控制时发生GotFocus事件。

以下的示例保持CommandButton1处于禁用状态,直到用户在TextBox1中键入一个值。

Private Sub TextBox1_LostFocus()

If TextBox1. Value = "" Then

CommandButton1. Enabled = False

Else

CommandButton1. Enabled = True

End If

End Sub

其他ActiveX控件事件的文档在“Microsoft 窗体帮助”中。有关在自定义对话框和文档中使用ActiveX控件的内容,请参阅第十二章“ActiveX控件和对话框”。

Application事件

用户退出应用程序或焦点移至另一个文档时发生Application事件。但是,与Document和ActiveX控件事件不同,Application事件默认事件处于禁用状态。在用户随同Application对象使用事件之前,必须新建一个类模块并声明一个包含事件的 Application 类型对象。用户可以在Visual Basic编辑器中使用类模块命令(插入菜单)的形式来新建一个类模块。

启用Application对象的事件,最好向类模块中添加以下声明。

Public WithEvents App As Application

定义了包含事件的新对象后,它将出现在类模块的“对象”下拉列表框中,然后可为新对象编写事件过程。(在“对象”框中选定新对象后,其有效事件将出现在“过程”下拉列表框中。)

但是在过程运行之前,必须将类模块中的已声名对象和 Application 对象相连接。要完成上述任务,可以在任何模块中使用下列声明(在这里“EventClass”是用户创建的用来启用事件的类模块的名字)。

Public X As New EventClass

用户已经创建了X对象变量后(EventClass类的一个实例),可以设置EnventClass类的App对象于Word Application对象等价。

Sub InitializeApp()

Set X. App = Application

End Sub

用户运行InitializeApp过程之后,EventClass类模块中的App对象指向了Word Application对象,而且只要事件发生,类模块中的事件过程也将会运行。

用户禁用Application对象的事件之后,可以为下表中的事件创建事件过程。

事件描述

当新建一个文档、打开一个已有文档或使另一个文档成为活动文档时DocumentChange事件发生。

用户退出Word时Quit事件发生。

以下的实例确保了在用户退出Word之前,“常用”工具栏和“格式”工具栏均为可见。结果,当重新启动Word时,这些工具栏将不会出现。

Private Sub App_Quit()

CommandBars ("Standard"). Visible = True

CommandBars ("Formatting"). Visible = True

End Sub

 

使用自动

通过给一个宏赋予一个特殊的名字,用户可以在执行诸如启动Word或打开一个文档这样的操作时自动运行它。Word将下列名称识别为自动宏,或者“自动”宏。

宏 名

运 行 时 刻

AutoExec

每次启动Word或装载一个全局模板时

AutoNew

每次新建一个文档时

AutoOpen

每次打开一个已有文档时

AutoClose

每次关闭一个文档时

AutoExit

每次退出Word或卸载一个全局模板时

关于使用自动宏的详细信息,请参阅“帮助”中的“自动宏”。

 

使用自动

在运用Word数据之外,用户还可能想让自己的应用程序同其他的应用程序,比如Microsoft Excel,Microsoft PowerPoint,或Microsoft Access交换数据。用户可以通过使用自动化(以前的OLE自动化)来同其他应用程序进行通信。

从另一个应用程序中对Word进行自动

自动化运行用户通过引用另一个应用程序的对象、属性方法来返回、编辑和输出数据。用户能够在另一个应用程序中进行引用的Application对象称为自动化对象。使Word能够被另一个应用程序所使用的第一步,就是创建对Word类型库的一个引用。要创建对Word类型库的引用,可以在“Visual Basic编辑器”里,单击 “工具”菜单中的“引用”,然后在“Microsoft Word 8.0 Object Library”旁边的复选框内打上钩。

下一步,声明一个引用Word Application对象的对象变量,如下例所示。

Dim appWD As Word. Application. 8

使用带有Word OLE程序标识符的Visual Basic CreateObject函数或GetObject函数,如下例所示。如果想看到Word时段,设置Visible属性为True(真)。

Dim appWD As Word. Application. 8

Set appWD = CreateObject ("Word. Application.8")

appWd. Visible = True

CreateObject函数返回一个Word Application对象,并且将它赋给appWD。通过使用Word Application对象的对象、属性方法用户可以用该变量对Word进行控制。以下的实例新建一个Word文档。

appWd. Documents. Add

CreateObject函数启动一个Word时段,当引用Application对象的对象变量失效时,该时段内的自动化不会关闭。设置该对象引用Nothing关键字也不会关闭Word。而是使用Quit方法关闭Word。以下的Microsoft Excel示例把“工作表1”中A1:B10单元格里的数据插入到一个Word新文档中,然后调整表格中的数据。如果使用了CreateObject函数,则该示例使用Quit方法关闭Word的新实例。如果GetObject函数返回错误429,那么该示例使用CreateObject来启动一个Word新实例。

Dim appWD As Word. Application

Err.Number = 0

On Error GoTo notloaded

Set appWD = GetObject (,"Word. Application.8")

notloaded:

If Err. Number = 429 Then

Set appWD = CreateObject ("Word. Application.8")

theError = Err. Number

End If

appWD. Visible = True

With appWD

Set myDoc = .Documents. Add

With .Selection

For Each c In Worksheets ("Sheet1"). Range ("A1:B10")

.InsertAfter Text :=c.Value

Count = Count + 1

If Count Mod 2 = 0 Then

.InsertAfter Text :=vbCr

Else

.InsertAfter Text :=vbTab

End If

Next c

.Range. ConvertToTable Separator :=wdSeparateByTabs

.Tables(1). AutoFormat Format :=wdTableFormatClassic1

End With

myDoc. SaveAs FileName :="C:/Temp.doc"

End With

If theError = 429 Then appWD. Quit

Set appWD = Nothing

从Word对另一个应用程序进行自动

要通过从Word使用自动化来和另一个应用程序交换数据,必须首先在“引用”对话框(在“工具”菜单中)里设置对另一个应用程序的类类型库的一个引用。在这之后,另一个应用程序的对象、属性方法都将出现在“对象浏览器”中,并且会在编译时自动对语法进行检查。用户也可以获得这些对象、属性方法内容敏感型帮助。

下一步,声明一个引用另一个应用程序中的特定类型对象的对象变量。以下示例声明了一个变量,该变量指向Microsoft Excel Application对象。

Dim xlObj As Excel.Application.8

用户可以通过使用CreateObject 或 GetObject函数来获得Automation对象。然后,通过使用另一个应用程序的对象、属性方法用户可以添加、更改或删除信息。当用户完成更改后,关闭应用程序。以下Word的示例判断Microsoft Excel是否正在运行。如果指定的Microsoft Excel任务存在,该示例使用GetObject函数;否则,它使用CreateObject函数。然后该示例将选定的文字传送给活动的Microsoft Excel工作簿里“工作表1”的A1单元格中。在任务完成以后,使用带有Nothing关键字的Set语句来清除Automation对象变量。

Dim xlObj As Excel. Application. 8

If Tasks.Exists ("Microsoft Excel") = True Then

Set xlObj = GetObject (,"Excel. Application. 8")

Else

Set xlObj = CreateObject ("Excel. Application. 8")

End If

xlObj. Visible = True

If xlobj. Workbooks. Count = 0 Then xlobj. Workbooks. Add

xlObj. Worksheets ("Sheet1").Range("A1").Value = Selection. Text

Set xlObj = Nothing

以下Word的示例判断PowerPoint是否正在运行。如果存在PowerPoint任务,那么该示例使用GetObject函数;否则,它使用CreateObject函数。然后该示例创建一个新演示文稿,文稿的第一个文本框包含活动Word文档的名称,第二个文本框包含活动文档第一段的文字。在任务完成后,使用带有Nothing关键字的Set语句来清除Automation对象变量。

Dim pptObj As PowerPoint. Application.8

If Tasks. Exists ("Microsoft PowerPoint") = True Then

Set pptObj = GetObject (,"PowerPoint. Application.8")

Else

Set pptObj = CreateObject ("PowerPoint. Application.8")

End If

pptObj. Visible = True

Set pptPres = pptObj. presentations. Add

Set aSlide = pptPres. Slides. Add(Index :=1,Layout :=ppLayoutText)

aSlide. Shapes(1). TextFrame. TextRange. Text = ActiveDocument.Name

aSlide. Shapes(2). TextFrame. TextRange. Text = ActiveDocument.Paragraphs(1). Range. Text

Set pptObj = Nothing

要了解关于对Microsoft Access进行自动化的信息,请参阅第三章“Microsoft Access对象”。要了解关于Word中Data Access 对象(DAO)的使用,请参阅“帮助”中的“在Microsoft Word中使用DAO”。

同内嵌Word对象进行通信

以后可以使用任何Word对象的Application属性来返回Word Application 对象。这有助于从内嵌在另一个应用程序中的Word文档里方法Word Application对象。以下的在Microsoft Excel中运行的示例,将一个对象变量设置为Word Application对象。(为了使该示例能够运行,在活动工作表中的形状一必须是一个内嵌Word文档。)该示例中最后一条命令在内嵌Word文档的开头添加文字

Dim appWRD As Word. Application

Set embeddedDoc = ActiveSheet. Shapes(1)

Set appWRD = embeddedDoc. OLEFormat. Object. Object. Application

appWRD. ActiveDocument. Range(Start :=0,End :=0). InsertBefore Text :="New text "

以下在PowerPoint中运行的示例,将一个对象变量设置为Word Application对象。(为了使该示例能够运行,在演示文稿中的幻灯片一必须是一个内嵌Word文档。)该示例的最后一条命令显示了在内嵌Word文档中的文字

Dim appWRD As Word. Application

Set embeddedDoc = Presentations(1). Slides(1). Shapes(1)

embeddedDoc. OLEFormat. Activate

Set appWRD = embeddedDoc.OLEFormat. Object. Application

MsgBox appWRD. ActiveDocument. Content.Text

引自微软word开发文档

猜你在找的VB相关文章