注意
若 Microsoft Jet Expression Service 以沙盒模式執行,則本主題所述的函式、方法、物件或屬性將被禁用,避免評估潛在不安全的表達式。 想了解更多沙盒模式的資訊,請在說明中搜尋「sandbox mode」。
建立並回傳一個 ActiveX 物件的參考。
語法
CreateObject (類別 [, servername] )
CreateObject 函式語法包含以下參數:
| 引數 | 描述 |
|---|---|
| 類別 | 必要。 弦 ) (變體。 應用程式名稱和要建立物件的類別。 |
| 伺服器名稱 | 可省略。 弦 ) (變體。 物件將被建立的網路伺服器名稱。 如果 伺服器名稱 是空字串 (“”“) ,則使用本地電腦。 |
類別參數使用語法 appname.objecttype,包含以下部分:
| 部分 | 描述 |
|---|---|
| 應用程式名稱 | 必要。 弦 ) (變體。 提供該物件的應用程式名稱。 |
| 物件類型 | 必要。 弦 ) (變體。 要建立的物件類型或類別。 |
註解
每個支援自動化的應用程式至少提供一種物件類型。 例如,文字處理應用程式可能會提供 應用程式 物件、 文件 物件和 工具列 物件。
要建立 ActiveX 物件,請將 CreateObject 回傳的物件指派到物件變數:
注意
下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。
' Declare an object variable to hold the object
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
在這個範例中,我們將自動化一個 Access 資料庫中的 Excel 試算表物件。 這段程式碼啟動應用程式建立物件,在此案例中是一個 Microsoft Excel 試算表。 物件建立後,你用你定義的物件變數在程式碼中引用它。 在以下範例中,你使用物件變數 ExcelSheet,以及其他 Excel 物件, Application 包括物件和 Cells 集合,來存取新物件的屬性和方法。
' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing
用子 As Object 句宣告物件變數會產生一個可包含任意類型物件參考的變數。 然而,透過該變數存取物件是延遲限制;也就是說,綁定發生在程式執行時。 要建立一個導致早期綁定的物件變數,也就是在程式編譯時綁定,請以特定類別 ID 宣告該物件變數。 例如,你可以宣告並建立以下 Excel 參考:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
透過早期綁定變數的參考可以提供更好的效能,但只能包含宣告中指定的類別的參考。
你可以將 CreateObject 回傳的物件傳給函式,期望以物件作為參數。 例如,以下程式碼建立並傳遞 Excel.Application 物件的參考:
Call MySub (CreateObject("Excel.Application"))
你可以在遠端網路電腦上建立物件,方法是將電腦名稱傳給 CreateObject 的伺服器名稱參數。 這個名稱和分享名稱中的機器名稱部分相同:對於名為「\\MyServer\Public」的分享, 伺服器名稱 是「MyServer」。
注意
請參閱 COM 文件 (Microsoft Developer Network) 以獲得如何在遠端網路電腦上顯示應用程式的更多資訊。 你可能需要為申請新增登錄檔金鑰。
以下程式碼會回傳一個在遠端電腦上執行的 Excel 版本號,該電腦名為 MyServer:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version
如果遠端伺服器不存在或無法使用,就會發生執行時錯誤。
注意
當目前沒有該物件實例時,請使用 CreateObject 。 如果物件的實例已經在執行,會啟動一個新實例,並建立指定類型的物件。 若要使用目前的實例,或啟動應用程式並讓它載入檔案,請使用 GetObject 函式。
如果物件註冊為單一實例物件,無論執行 CreateObject 多少次,該物件只會建立一個實例。
範例
本範例使用 CreateObject 函式來設定參考 (
xlApp
) Excel 的。 它利用該參考來存取 Excel 的 Visible 屬性,然後使用 Excel Quit 方法關閉它。 最後,該參考文獻被公開。
Dim xlApp As Object ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
' You may have to set Visible property to True
' if you want to see the application.
xlApp.Visible = True
' Use xlApp to access Microsoft Excel's
' other objects.
xlApp.Quit ' When you finish, use the Quit method to close
Set xlApp = Nothing ' the application, then release the reference.