CreateObject 函數

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

注意

如果 Microsoft Jet 運算式服務以沙箱模式執行,則會停用本主題中所述的函數、方法、物件或屬性,這會防止評估可能不安全的運算式。 如需沙箱模式的詳細資訊,請在說明中搜尋「沙箱模式」。

建立並傳回 ActiveX 物件的參照。

語法

CreateObject (class [, servername] )

CreateObject 函數語法具有下列引數:

引數 描述
類別 必要。 字) (變體。 要建立之物件的應用程式名稱和類別。
ServerName 可省略。 字) (變體。 將建立物件的網路伺服器名稱。 如果 servername 為空白字串 (“”) ,則使用本機電腦。

    

class引數使用語法 appname.objecttype,並具有下列部分:

部分 描述
應用程式名稱 必要。 字) (變體。 提供物件的應用程式名稱。
objectType 必要。 字) (變體。 要建立的物件類型或類別。

    

註解

每個支援自動化的應用程式都至少提供一種類型的物件。 例如,文字處理應用程式可以提供 Application 物件、 Document 物件和工具 物件。

若要建立 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 告物件變數會建立一個變數,其可以包含任何類型的物件參照。 不過,透過該變數存取物件是延遲繫結的;也就是說,綁定會在程式執行時發生。 若要建立導致早期繫結的物件變數,也就是在程式編譯時繫結,請以特定的類別識別碼宣告物件變數。 例如,您可以宣告及建立下列 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"))

您可以將電腦名稱傳遞至 CreateObjectservername 引數,以在遠端網路電腦上建立物件。 該名稱與共用名稱的機器名稱部分相同:對於名為 “\\MyServer\Public” 的共用, servername 為 “MyServer”。

注意

請參閱 COM 文件 (請參閱 Microsoft Developer Network) ,以取得有關在遠端網路電腦上顯示應用程式的其他資訊。 您可能需要為應用程式新增登錄機碼。

下列程式碼會傳回在名為 MyServer: 的遠端電腦上執行的 Excel 執行個體版本號碼:

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.