MSOffice小知识:从前期绑定过渡到后期绑定

王朝other·作者佚名  2006-05-21
窄屏简体版  字體: |||超大  

Author:水如烟

写程序免不了要跟微软的OFFICE打交道,特别多的会用到EXCEL,ACCESS,WORD相对的少一些。做应用软件的应该都能熟练使用OFFICE吧,否则,在我想来,有点不可思议。熟练使用OFFICE,当然的该知道怎么使用它的“宏”的了,稍深入一些,要懂些VBA的。在后面的一些时间里,我将说些这方面的小知识,应用中的小技巧,特别是结合OFFICE的使用来配合编写程序代码。按我的经验,只要你知道怎么去做,而不必担心不会做。我现在也不知怎么做,以前知道的我已经忘了。我习惯用到才去想怎么去做,当然,平时要多看多想些,记不记是另外一回事。

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 AccessApplication

Public 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 AccessApplication

Public 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.Click

AccessApplication.Show()

End Sub

上面说到举一反三,现在这样看看:

Public Class OfficeApplication

Public 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.Click

OfficeApplication.Show(OfficeApplication.Office.Word)

OfficeApplication.Show(OfficeApplication.Office.Excel)

OfficeApplication.Show(OfficeApplication.Office.Access)

End Sub

注:以上包括以后的,仅供参考。 LzmTW 20060521。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航