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