将对象引用赋予对象变量后,即可用此变量操作对象的属性和方法。也可用 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
的属性找到的第一个对象,'
在这种情况下就是Form1
。Caption = "Microsoft Form1 Caption"
注意 如果需要在 Visual Basic 应用程序中输入二进制数据,并计划在使用 ActiveX 的应用程序之间共享该数据,请使用 Byte 数组存储该数据。如果将二进制数据赋予一个字符串,然后想将这些数据传给使用字符串的 Automation 对象,数据可能不会正确地转换。关于数据类型的更详细的信息,请参阅“编程基础”。
详细信息 关于使用对象属性和方法的更详细的信息,请参阅“用对象编程”。
除了响应 Visaul Basic 对象发生的事件,应用程序还可以响应由 ActiveX 部件提供的对象中的事件。例如,如果一个事件发生在 Microsoft Excel 工作簿中,Viasual Basic 应用程序能显示一个消息框。
通过在对象的事件过程中添加代码,使得应用程序可以响应该对象的事件。但是,由部件提供的对象的事件过程在 Visual Baisc 中不是自动可用的。必须首先使用 WithEvents 关键字声明一个对象变量。
在使用 WithEvents 声明一个对象变量之后,Visual Basic 代码窗口使用该变量来显示该对象的事件过程。然后可以把代码加到这些事件过程中以响应对象的事件。 当把一个对象引用赋予这个变量时,就创建了运行时在变量和对象之间的连接。
要为部件提供的对象创建事件过程,请按照以下步骤执行:
Dim WithEvents xlBook As Excel.Workbook
Visual Basic 把对象变量名加到代码窗口的“对象”框。当选择变量名时,Visual Basic 在“过程”列表框中显示对象的事件过程。
例如,假设 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
例如,可以把下面的内容加到 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 语句”。