CreateObject 函式

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

注意

若 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.