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

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值