在vb中引用Execl或word的对象时,如何获取当前系统中已经运行的Execl对象实例或word实例,且如何控制此对象的触发事件?而不是VB中新建实例
用GetObject()函数
以下是MSDN中的示例:
Sub GetExcel()
Dim MyXL As Object 用于存放
Microsoft Excel 引用的变量。
Dim ExcelWasNotRunning As Boolean 用于最后释放的标记。
测试 Microsoft Excel 的副本是否在运行。
On Error Resume Next 延迟错误捕获。
不带第一个参数调用 Getobject 函数将
返回对该应用程序的实例的引用。
如果该应用程序不在运行,则会产生错误。
Set MyXL = Getobject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear 如果发生错误则要清除 Err 对象。
检测 Microsoft Excel。如果 Microsoft Excel 在运行,
则将其加入运行对象表。
DetectExcel
将对象变量设为对要看的文件的引用。
Set MyXL = Getobject("c:\vb4\MYTEST.XLS")
设置其 Application 属性,显示 Microsoft Excel。
然后使用 MyXL 对象引用的 Windows 集合
显示包含该文件的实际窗口。
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
在此处对文件
进行操作。
...
如果在启动时,Microsoft Excel 的这份副本不在运行中,
则使用 Application 属性的 Quit 方法来关闭它。
注意,当试图退出 Microsoft Excel 时,
标题栏会闪烁,并显示一条消息
询问是否保存所加载的文件。
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing 释放对该应用程序
和电子数据表的引用。
End Sub