如何建立ActiveX 物件引用

No.1

VBA程式設計應用中,ActiveX物件指的是通過自動化介面向其他應用程式或程式設計工具公開的物件。

不管它是如何說明,ActiveX物件就是一個實際存在但又很難抓住的東西。

可以理解為一個實體,也可以理解為一段不存在的軟體程式碼。

歸根結底是一個存在的物件,至於是什麼物件,下面仔細分析。

No.2

CreateObject是一個很有用的函式,它是一個開天闢地的存在。

也就是說有了這個函式,你可以建立不存在的東西。

比如一個Excel工作表,一個Word文件,或者是一個資料庫連線物件。

如何要部建立這個物件有什麼用?那就要看你自己的需求了。

比如要建立一個工作表,然後對這個工作表進行一個資料記錄儲存,建立一個Word文件,記錄一個小祕密什麼的,都沒問題,等等類似更加複雜的事件,完全依賴於這個建立的過程。

其實,有一點就很明顯。

當開啟一個Excel工作表的時候,系統會預設建立並開啟一個空白工作表,這個過程,似乎十分順理成章,但是Excel自動完成這些工作的時候,通常並不理解。

CreateObject函式語法

CreateObject語法只有兩個引數,而且通常如果不做伺服器端可不用考慮第二個引數,ServeName。

語法:

CreateObjec(Class,ServeName)

常見的Class如下圖所示:

No.3

本函式的難點在於,建立之後要對不同的類進行屬性設定或物件過程控制。

所以,在使用的時候,要首先對某一物件有一個全面的瞭解。不然,建立之後,也無用武之地。

下面以一個實際例子來進行說明:

本例建立一個表格,並對錶格進行一個賦值,將Excel應用的版本號寫入A2單元格,然後儲存為S1.xls檔案。

程式碼

Private Sub CommandButton1_Click() On Error Resume Next Application.DisplayAlerts = False Range("A1").Value = Application.Version Dim S As Object, sName As String sName = ThisWorkbook.Path & "/S1.xls" Set S = CreateObject("Excel.Sheet") '建立一個Sheet物件,賦值給變數物件S With S.Application     .DisplayAlerts = False     .ScreenUpdating = False     .Visible = True     .Range("A2").Value = .Version     .ScreenUpdating = True     .DisplayAlerts = True End With S.SaveAs sName Set S = Nothing Application.DisplayAlerts = True End Sub

No.4

整個程式碼最重要的一行

Set S = CreateObject("Excel.Sheet")

可以看到函式CreateObject("Excel.Sheet")建立了一個Excel物件,並賦值給物件變數S。

然後對變數S進行操作,屬性設定等等就像是對建立的工作操作一樣。

最後,set S=Nothing將變數釋放,不釋放也行,關閉表格後自動釋放,但最好是釋放,有始有終,不然可能會發生一些莫名的錯誤。

CreateObject函式功能就說這些,其實更加重要的內容,還是建立不同物件之後的應用。所以,有興趣可以試著不同的Class類進行一個操作。

歡迎關注、收藏。