MSOffice小知识:从前期绑定过渡到后期绑定
来源:岁月联盟
时间:2006-05-24
OFFICE的对象非常类似,象是有共同的基类,实现同一些接口似的,所以能够使人举一反三,熟知了一门如EXCEL,可以推知怎样控制WORD。
OFFICE版本多多,为适应不同的版本,在VB.NET中与OFFICE打交道时,我习惯用后期绑定方式,置Option Strict Off。但是,写代码的过程中对它(例如EXCEL)的对象属性方法等并不熟悉,所以,我还是引用它的COM,置Option Strict On保证有关它的代码都是正确的,运行通过后,再删去COM的引用,置Option Strict Off。
比如ACCESS,两种方试对比一下:
引用COM,Option Strict On:
Public Class AccessApplicationPublic Shared Sub Show()
Dim access As New Microsoft.Office.Interop.Access.Application
access.Visible = True
System.Threading.Thread.Sleep(5000) '显示五秒后关闭
access.Quit(Interop.Access.AcQuitOption.acQuitSaveNone)
access = Nothing
End Sub
End Class
后期绑定,Option Strict Off:
Public Class AccessApplicationPublic Shared Sub Show()
Dim access As Object
access = CreateObject("Access.Application")
access.Visible = True
System.Threading.Thread.Sleep(5000)
Dim acQuitSaveNone As Integer = 2
access.Quit(acQuitSaveNone)
access = Nothing
End Sub
End Class
两者的调用都是:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickAccessApplication.Show()
End Sub
上面说到举一反三,现在这样看看:
Public Class OfficeApplicationPublic Shared Sub Show(ByVal office As Office)
Dim mApplication As Object
mApplication = CreateObject(String.Format("{0}.Application", office.ToString))
mApplication.Visible = True
System.Threading.Thread.Sleep(5000)
mApplication.Quit()
mApplication = Nothing
End Sub
Public Enum Office
Word
Excel
Access
End Enum
End Class
WORD、EXCEL、ACCESS依次都显示一下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickOfficeApplication.Show(OfficeApplication.Office.Word)
OfficeApplication.Show(OfficeApplication.Office.Excel)
OfficeApplication.Show(OfficeApplication.Office.Access)
End Sub
注:以上包括以后的,仅供参考。 LzmTW 20060521。