Poznámka: Funkce, metoda, objekt nebo vlastnost popsaná v tomto tématu je zakázaná, pokud je služba Microsoft Jet Expression Service spuštěná v režimu izolovaného prostoru (sandbox), což brání vyhodnocení potenciálně nebezpečných výrazů. Další informace o režimu izolovaného prostoru najdete v nápovědě k režimu izolovaného prostoru.

Vrátí odkaz na objekt poskytnutý komponentou ActiveX.

Syntaxe

GetObject([cesta ] [ , class ] )

Syntaxe funkce GetObject má následující argumenty:

Argument

Popis

cesta

Nepovinný argument. Variant(String). Úplná cesta a název souboru obsahujícího objekt, který chcete načíst. Pokud je název_cesty vynechán, je třída povinná.

třída

Nepovinný argument. Variant(String). Řetězec představující Třída objektu.


Název Argument používá syntax appname.objecttype a obsahuje tyto části:

Část

Popis

název_aplikace

Povinný argument. Variant(String). Název aplikace obsahující objekt.

objecttype

Povinný argument. Variant(String). Typ nebo třída objektu, který se má vytvořit.


Poznámky

Poznámka: Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.

Funkci GetObject použijte pro přístup k objektu ActiveX ze souboru a přiřaďte ho objektu k objektu Objektová proměnná. Příkaz Set použijte k přiřazení objektu vráceného objektem GetObject k proměnné objektu. Například:

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

Při provedení tohoto kódu se spustí aplikace přidružená k zadané cestě a objekt v zadaném souboru se aktivuje.

Pokud je název_cesty řetězec nulové délky (""), vrátí funkce GetObject instanci nového objektu zadaného typu. Pokud je argument název_cesty vynechán, vrátí funkce GetObject aktuálně aktivní objekt zadaného typu. Pokud neexistuje žádný objekt určeného typu, dojde k chybě.

Některé aplikace umožňují aktivovat část souboru. Na konec názvu souboru přidejte vykřičník(!)a za něj řetězec identifikující část souboru, kterou chcete aktivovat. Informace o tom, jak tento řetězec vytvořit, najdete v dokumentaci k aplikaci, která objekt vytvořila.

V aplikaci pro kreslení můžete mít například několik vrstev na výkres uložený v souboru. K aktivaci vrstvy ve výkresu, která se nazývá SCHEMA.CAD:

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

Pokud nezadáte třídu objektu,určuje automatizace aplikaci, která se má spustit, a objekt, který se má aktivovat, na základě názvu souboru, který zadáte. Některé soubory ale mohou podporovat více než jednu třídu objektu. Výkres může například podporovat tři různé typy objektů: objekt aplikace, nakreslený objekt a objekt panelu nástrojů, které jsou součástí stejného souboru. Chcete-li určit objekt v souboru, který chcete aktivovat, použijte volitelný argument třídy. Například:

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

V tomto příkladu FIGMENT aplikace výkresu a DRAWING jedním z typů objektů, které podporuje.

Jakmile je objekt aktivovaný, odkazujete na něj v kódu pomocí proměnné objektu, kterou jste definovali. V předchozím příkladu se k vlastnostem a metodám nového objektu přistupuje pomocí proměnné MyObject. Například:

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

Poznámka:  Funkci GetObject použijte, pokud je aktuální instance objektu nebo pokud chcete objekt vytvořit pomocí souboru, který už je načtený. Pokud není žádná aktuální instance a nechcete, aby objekt začal se souborem, použijte funkci CreateObject.

Pokud se objekt zaregistroval jako objekt s jednou instancí, vytvoří se jenom jedna jeho instance, a to bez ohledu na to, kolikrát se příkaz CreateObject spustí. U objektu s jednou instancí vrátí funkce GetObject vždy stejnou instanci při volání se syntaxí řetězce nulové délky ("") a v případě vynechání argumentu cesta dojde k chybě. Objekt GetObject nelze použít k získání odkazu na třídu vytvořenou pomocí jazyka Visual Basic.

Příklad

V tomto příkladu se funkce GetObject použije k získání odkazu na Microsoft Office Excel 2007 listu (MyXL). Pomocí vlastnosti Aplikace na listu zviditelní Excel, zavře ho atd. Při dvou hovorech rozhraní API vyhledá procedura DetectExcel Sub Excel, a pokud je spuštěná, zadá ji do tabulky objektů, která běží. První volání na GetObject způsobí chybu, pokud Microsoft Excel ještě není spuštěný. V tomto příkladu je chyba nastavena na hodnotu True příznak ExcelWasNotRunning. Druhé volání na GetObject určuje soubor, který se má otevřít. Pokud Excel ještě není spuštěný, zahájí se druhé volání a vrátí odkaz na list představovaný zadaným souborem, mytest.xls. Soubor musí existovat v zadaném umístění. v opačném případě se vygeneruje chyba automatizace chyb jazyka Visual Basic. Následující příklad kódu zviditelní Excel i okno obsahující zadaný list. Pokud není spuštěná žádná předchozí verze Excelu, kód použije k zavření Excelu metodu Quit objektu Aplikace. Pokud už aplikace běží, nebude se o zavření pokoušet. Samotná reference se vypustí tak, že ji nastavíte na 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

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou překladu?

Co ovlivnilo váš názor?

Máte další zpětnou vazbu? (Nepovinné)

Děkujeme za váš názor!

×