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. |
Wargumentklasy jest używana nazwa aplikacji składni.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. |
Spostrzeżenia
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 zmienna obiektu:
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 ObjectSet 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 obiektowej ExcelSheeti innych obiektów programu Excel, w tym obiektu Application i kolekcji 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
Deklarowanie zmiennej obiektowej przy użyciu 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.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet 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 klasa określonego w deklaracja.
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 ObjectSet 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.