使用对象的属性、方法和事件

将对象引用赋予对象变量后,即可用此变量操作对象的属性和方法。也可用 WithEvents 关键字声明对象变量,并用它使应用程序响应该对象的事件。

使用对象的属性和方法

可以用 object.property 语法设置并返回对象的属性值,或用 objcet.method 语法使用该对象的方法。例如,可以用下面的代码设置 Application 对象的 Caption 属性:

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
xlApp.Caption = "MyFirstObject"

注意 在 Microsoft Excel 97 以前的版本不支持引用 Microsoft Excel Application 类的 Excel Application 语法。要在 Microsoft Excel 5.0 和 Microsoft Excel 95 之中引用 Microsoft Excel Application 类,要用 [_ExcelApplication] 语法。例如:

Set xlApp = New [_ExcelApplication]

可以这样调用 Microsoft Excel Application 对象的 Quit 方法:

xlApp.Quit

通常,引用被其它应用程序或工程定义的对象的方法或属性时,尽可能使之具体是一个好办法。例如:

'用充分限定的属性名设置 Microsoft Project 窗口标题。
Dim pjWindow As Project.Window
'获得对于第一个 Window 对象的引用。
Set pjWindow = ActiveProject.Windows(1)
pjWindow.Caption = "Project Caption"

'没有限定的名字,使 Visual Basic '名为 Caption 的属性找到的第一个对象,
'在这种情况下就是 Form1Caption = "Microsoft Form1 Caption"

注意 如果需要在 Visual Basic 应用程序中输入二进制数据,并计划在使用 ActiveX 的应用程序之间共享该数据,请使用 Byte 数组存储该数据。如果将二进制数据赋予一个字符串,然后想将这些数据传给使用字符串的 Automation 对象,数据可能不会正确地转换。关于数据类型的更详细的信息,请参阅“编程基础”。

详细信息 关于使用对象属性和方法的更详细的信息,请参阅“用对象编程”。

响应对象的事件

除了响应 Visaul Basic 对象发生的事件,应用程序还可以响应由 ActiveX 部件提供的对象中的事件。例如,如果一个事件发生在 Microsoft Excel 工作簿中,Viasual Basic 应用程序能显示一个消息框。

通过在对象的事件过程中添加代码,使得应用程序可以响应该对象的事件。但是,由部件提供的对象的事件过程在 Visual Baisc 中不是自动可用的。必须首先使用 WithEvents 关键字声明一个对象变量。

在使用 WithEvents 声明一个对象变量之后,Visual Basic 代码窗口使用该变量来显示该对象的事件过程。然后可以把代码加到这些事件过程中以响应对象的事件。 当把一个对象引用赋予这个变量时,就创建了运行时在变量和对象之间的连接。

要为部件提供的对象创建事件过程,请按照以下步骤执行:

  1. 在 Visual Basic 工程中添加对于部件的类型库的引用。关于添加对类型库的引用更详细的信息,请参阅“创建对象引用” 一节。

  2. 在窗体或类模块的 Declarations 部分中,使用 WithEvents 关键字声明对象变量。例如:
    Dim WithEvents xlBook As Excel.Workbook
    

    Visual Basic 把对象变量名加到代码窗口的“对象”框。当选择变量名时,Visual Basic 在“过程”列表框中显示对象的事件过程。

  3. 选择一个事件过程,然后将代码加入到当事件发生时,应用程序所要运行的过程。

    例如,假设 Visual Basic 应用程序依赖于 Microsoft Excel workbook 中显示的数据,而且已经为此 workbook 声明了 WithEvents 变量 xlBook。当其他用户试图关闭 workbook 时,您可以通过在应用程序中把下列代码加到 xlBook_BeforeClose 事件过程来显示一个消息,并使该 workbook 不被关闭。

    Private Sub xlBook_BeforeClose(Cancel As Boolean)
    ' 隐藏 Microsoft Excel 窗口,使得该消息可见。
    xlBook.Application.Visible = False
    ' 显示消息。
    MsgBox "This workbook must remain open."
    ' 不再隐藏 Microsoft Excel 窗口。
    xlBook.Application.Visible=True
    ' 将设计过程的Cancel 参数设置为 True,取消该事件。
    Cancel = True
    End Sub
    
  4. 把对象引用赋予 WithEvents 对象变量。

    例如,可以把下面的内容加到 Visual Basic 窗体的 Form_Load 事件过程中,给变量 xlBook 赋值对 Microsoft Excel workbook, Sales.xls 的引用:

    Private Sub Form_Load()
    Set xlBook = GetObject("Sales.xls")
    ' 显示 Microsoft Excel  Worksheet 窗口。
    xlBook.Application.Visible = True
    xlBook.Windows(1).Visible = True
    End Sub
    

详细信息 请参阅“Dim 语句”。