Funkcja GetObject

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

Uwaga : Funkcja, metody, obiektu lub właściwości opisane w tym temacie jest wyłączona, jeśli usługa wyrażeń programu Microsoft Jet działa w trybie piaskownicy, co uniemożliwia oceny potencjalnie niebezpieczne wyrażenia. Aby uzyskać więcej informacji na temat trybu piaskownicy wyszukaj ciąg "tryb piaskownicy" w Pomocy.

Zwraca odwołanie do obiektu dostarczonego przez składnik ActiveX.

Składnia

GetObject ([ścieżka ] [, klasy ] )

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

Argument

Opis

Nazwa ścieżki

Opcjonalnie. Wariant (Ciąg). Pełną ścieżkę i nazwę pliku zawierającego obiekt do pobrania. W przypadku pominięcia ścieżkiklasy jest wymagana.

klasy

Opcjonalnie. Wariant (Ciąg). Ciąg reprezentujący klasa obiektu.


Składnia argumentu. korzysta z klasyargumentTyp obiektu i zawiera następujące segmenty:

Segment

Opis

Nazwa aplikacji

Wymagane. Wariant (Ciąg). Nazwa aplikacji, dostarczając obiektu.

Typ obiektu

Wymagane. Wariant (Ciąg). Typ lub klasy obiektu do utworzenia.


Spostrzeżenia

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.

Aby uzyskać dostęp do obiektu ActiveX z pliku i przypisać obiekt zmienna obiektu, należy użyć funkcji GetObject . Aby przypisać obiekt zwracane przez GetObject zmiennej obiektu, użyj instrukcji Set . Na przykład:

Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

Po wykonaniu tego kodu zostanie uruchomiona aplikacja skojarzona z określoną ścieżki i aktywowaniu obiektu w pliku.

Jeśli Nazwa ścieżki jest ciąg o zerowej długości (""), GetObject zwraca nowe wystąpienie obiektu określonego typu. W przypadku pominięcia argumentu ścieżkiGetObject Zwraca obecnie aktywny obiekt określonego typu. Jeśli istnieje żaden obiekt określonego typu, wystąpi błąd.

Niektóre aplikacje umożliwiają uaktywnienie części pliku. Dodaj wykrzyknik (!) na końcu nazwy pliku, a po nim się ciąg, który identyfikuje części pliku, który chcesz aktywować. Aby uzyskać informacje na temat tworzenia tego ciągu, zapoznaj się z dokumentacją dla aplikacji, która utworzyła obiekt.

Na przykład w aplikacji do rysowania może być wiele warstw w rysunku przechowywanym w pliku. Aby uaktywnić warstwy w rysunku o nazwie SCHEMA.CADmożna użyć następujący kod:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

Jeśli nie określisz obiektu klasy, automatyzacji określa aplikację do uruchomienia i obiekt, aby aktywować, na podstawie nazwy pliku przez użytkownika. Niektóre pliki mogą jednak obsługiwać więcej niż jedną klasę obiektu. Na przykład rysunek może obsługiwać trzy różne typy obiektów: obiekt aplikacji i obiekt paska narzędzi , które są częścią tego samego pliku obiektu rysunkowego . Aby określić, który obiekt w pliku, który chcesz uaktywnić, użyj argument opcjonalny zajęć . Na przykład:

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", _
"FIGMENT.DRAWING")

W tym przykładzie FIGMENT jest nazwę rysunku aplikacji i DRAWING jednego z obsługiwanych typów obiektu.

Po uaktywnieniu obiektu można się odwoływać w kodzie przy użyciu zmienna obiektu, zdefiniowane przez użytkownika. W powyższym przykładzie masz dostęp do właściwości i metod nowego obiektu przy użyciu zmiennych obiektu MyObject. Na przykład:

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

Uwaga : Funkcja GetObject po bieżącym wystąpieniu obiektu lub jeśli chcesz utworzyć obiekt przy użyciu już załadowanego pliku. Jeśli istnieje nie bieżącego wystąpienia i nie chcesz, aby uruchomić plik załadowany obiektu, funkcja CreateObject .

Jeśli obiekt zarejestrował się jako obiekt jednego wystąpienia, tylko jedno wystąpienie obiektu zostanie utworzony, niezależnie od tego, ile razy CreateObject jest wykonywane. W przypadku obiektu jednego wystąpienia GetObject zawsze zwraca wartość tego samego wystąpienia po o nazwie ciąg o zerowej długości ("") składni która powoduje błąd w przypadku pominięcia argumentu ścieżki . Za pomocą GetObject nie można uzyskać odwołania do zajęć utworzone za pomocą języka Visual Basic.

Przykład

W tym przykładzie użyto funkcji GetObject , aby odwołać się do arkusza określonych Microsoft Office Excel 2007 (MyXL). Używa go arkusza właściwości aplikacji , aby program Excel widoczne, aby go zamknąć i tak dalej. Używając dwóch funkcji API, procedura o nazwie DetectExcel Sub szuka programu Excel, a jeśli jest uruchomiony, wprowadza go do tabeli działających obiektów. Pierwsze wywołanie GetObject powoduje błąd, jeśli jeszcze nie działa program Microsoft Excel. W tym przykładzie błąd powoduje ustawienie flagi ExcelWasNotRunning jest ustawiona na PRAWDA. Drugie wywołanie GetObject Określa plik, aby otworzyć. Jeśli program Excel nie jest już uruchomiony, drugie wywołanie uruchomi go i zwraca odwołanie do arkusza reprezentowanego przez określonego pliku mytest.xls. Plik musi istnieć w określonej lokalizacji. w przeciwnym razie jest generowany błąd języka Visual Basic błąd automatyzacji. Następnie kod przykładowy wyświetla program Excel i okno zawierające określony arkusz. Ponadto jeśli wystąpił poprzednia wersja programu Excel, kod używa metodytQuiobiektu aplikacji zamyka program Excel. Jeśli aplikacja jest już uruchomiona, nie próby go zamknąć. Samo odwołanie został wydany przez ustawienie nic.

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
ByVal wParam as Long, _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object ' Variable to hold reference
' to Microsoft Excel.
Dim ExcelWasNotRunning As Boolean ' Flag for final release.
' Test to see if there is a copy of Microsoft Excel already running.
On Error Resume Next ' Defer error trapping.
' GetObject function called without the first argument returns a
' reference to an instance of the application. If the application isn't
' running, an error occurs.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
DetectExcel
' Set the object variable to reference the file you want to see.
Set MyXL = GetObject("c:\vb4\MYTEST.XLS")
' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Do manipulations of your file here.
' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing ' Release reference to the
' application and spreadsheet.
End Sub
Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
Const WM_USER = 1024
Dim hWnd As Long
' If Excel is running this API call returns its handle.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 means Excel not running.
Exit Sub
Else
' Excel is running so use the SendMessage API
' function to enter it in the Running Object Table.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×