Funkcja CreateObject

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Uwaga

Funkcja, metoda, obiekt lub właściwość opisana w tym temacie jest wyłączona, jeśli usługa wyrażeń Microsoft Jet działa w trybie piaskownicy, co uniemożliwia oszacowanie potencjalnie niebezpiecznych wyrażeń. Aby uzyskać więcej informacji na temat trybu piaskownicy, wyszukaj "tryb piaskownicy" w Pomocy.

Tworzy i zwraca odwołanie do obiektu ActiveX.

Składnia

CreateObject(klasa [, nazwa serwera] )

W składni funkcji CreateObject występują następujące argumenty:

Argument Opis
klasa Argument wymagany. Wariant (ciąg). Nazwa aplikacji i klasa obiektu do utworzenia.
Nazwa_serwera Argument opcjonalny. Wariant (ciąg). Nazwa serwera sieciowego, na którym ma zostać utworzony obiekt. Jeśli nazwa serwera jest pustym ciągiem (""), używany jest komputer lokalny.

    

Argument klasaużywa składni appname.objecttype i zawiera następujące segmenty:

Segment Opis
Appname Argument wymagany. Wariant (ciąg). Nazwa aplikacji udostępniającej obiekt.
Objecttype Argument wymagany. Wariant (ciąg). Typ lub klasa obiektu do utworzenia.

    

Uwagi

Każda aplikacja, która obsługuje automatyzację, zapewnia co najmniej jeden typ obiektu. Na przykład aplikacja edytora tekstów może udostępniać obiekt Application , obiekt Document i obiekt paska narzędzi .

Aby utworzyć obiekt ActiveX, przypisz obiekt zwrócony przez createObject do zmiennej obiektowej:

Uwaga

Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

W tym przykładzie automatyzujemy obiekt arkusza kalkulacyjnego programu Excel z poziomu bazy danych programu Access. Ten kod powoduje uruchomienie aplikacji tworzącej obiekt, w tym przypadku arkusz kalkulacyjny programu Microsoft Excel. Po utworzeniu obiektu odwołujesz się do niego w kodzie przy użyciu zdefiniowanej zmiennej obiektowej. W poniższym przykładzie uzyskujesz dostęp do właściwości i metod nowego obiektu przy użyciu zmiennej ExcelSheetobiektowej oraz innych obiektów programu Excel, w tym obiektu CellsApplication i kolekcji.

' 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

Deklarowanie zmiennej obiektowej za pomocą klauzuli As Object powoduje utworzenie zmiennej, która może zawierać odwołanie do dowolnego typu obiektu. Jednak dostęp do obiektu przez tę zmienną jest powiązany z opóźnieniem; oznacza to, że powiązanie występuje po uruchomieniu programu. Aby utworzyć zmienną obiektową powodującą wcześniejsze powiązanie, czyli powiązanie podczas kompilowania programu, zadeklaruj zmienną obiektową o określonym identyfikatorze klasy. Można na przykład zadeklarować i utworzyć następujące odwołania do programu 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)

Odwołanie za pośrednictwem zmiennej wcześniejszej granicy może zapewnić lepszą wydajność, ale może zawierać tylko odwołanie do klasy określonej w deklaracji.

Możesz przekazać obiekt zwrócony przez funkcję CreateObject do funkcji oczekującej obiektu jako argumentu. Na przykład poniższy kod tworzy i przekazuje odwołanie do obiektu Excel.Application:

Call MySub (CreateObject("Excel.Application"))

Obiekt można utworzyć na komputerze w sieci zdalnej, przekazując nazwę komputera do argumentu nazwa_serwerafunkcji CreateObject. Ta nazwa jest taka sama jak część Nazwa komputera nazwy udziału: dla udziału o nazwie "\\MyServer\Public", nazwa serwera to "MyServer".

Uwaga

Dodatkowe informacje na temat ustawiania aplikacji jako widocznej na komputerze zdalnej sieci można znaleźć w dokumentacji COM (zobacz Microsoft Developer Network). Może być konieczne dodanie klucza rejestru dla aplikacji.

Poniższy kod zwraca numer wersji wystąpienia programu Excel uruchomionego na komputerze zdalnym o nazwie MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Jeśli serwer zdalny nie istnieje lub jest niedostępny, występuje błąd w czasie wykonywania.

Uwaga

Użyj polecenia CreateObject , jeśli nie ma bieżącego wystąpienia obiektu. Jeśli wystąpienie obiektu jest już uruchomione, zostanie uruchomione nowe wystąpienie i zostanie utworzony obiekt określonego typu. Aby użyć bieżącego wystąpienia lub uruchomić aplikację i załadować plik, użyj funkcji GetObject .

Jeśli obiekt zarejestrował się jako obiekt jedno wystąpienie, zostanie utworzone tylko jedno wystąpienie tego obiektu, niezależnie od tego, ile razy zostanie wykonana funkcja CreateObject .

Przykład

W tym przykładzie użyto funkcji CreateObject w celu ustawienia odwołania (

xlApp

) do programu Excel. Korzysta z odwołania w celu uzyskania dostępu do właściwości Visible programu Excel, a następnie używa metody Zamknij program Excel, aby ją zamknąć. Na koniec zostanie opublikowane samo odwołanie.

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.