Funkce GetObject

Důležité :  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

Poznámka : Funkce, metody, objektu nebo vlastnosti popsaných v tomto tématu je vypnutá, když běží služba Microsoft Jet výraz v režimu izolovaného prostoru, který brání hodnocení potenciálně nebezpečných výrazů. Další informace o režimu izolovaného prostoru vyhledejte v nápovědě "režim izolovaného prostoru".

Vrátí odkaz na objekt poskytovaný ovládacího prvku ActiveX.

Syntaxe

GetObject ([cesta ] [, předmětu ] )

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

Argument

Popis

Cesta

Volitelné. Varianty (Řetězec). Úplnou cestu a název souboru, který obsahuje objekt, který chcete načíst. Pokud vynecháte argument cesta je vyžadován.

třídy

Volitelné. Varianty (Řetězec). Řetězec vyjadřující Třída objektu.


Třídy Argument používá syntaxe název_aplikace.vztah mezi typem objektu a má následující části:

Část

Popis

název_aplikace

Povinné. Varianty (Řetězec). Název aplikace poskytující objekt.

vztah mezi typem objektu

Povinné. Varianty (Řetězec). Typ nebo třídy objektu 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.

Funkce GetObject umožňuje přístup k objektu ActiveX ze souboru a přiřaďte Objektová proměnná objektu. Použití příkazu Nastavení pro přiřazení objektu vráceného GetObject objektová proměnná. Příklad:

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

Při spuštění tento kód aplikace přidružená k zadané cesta je spuštěn a aktivaci objektu v zadaném souboru.

Pokud cesta je řetězec nulové délky (""), vrátí funkce GetObject nové instance objekt zadaného typu. Pokud vynecháte argument cestaGetObject vrátí aktivní objekt zadaného typu. Pokud žádný objekt zadaného typu existuje, dojde k chybě.

Některé aplikace umožňuje aktivovat část souboru. Přidání vykřičník (!) na konec názvu souboru a postupujte podle řetězcem, který identifikuje část soubor, který chcete aktivovat. Informace o tom, jak vytvořit tento řetězec, naleznete v dokumentaci k aplikaci vytvořili objekt.

Například ve výkresu aplikace může mít více vrstev do výkresu uložené v souboru. Následující kód můžete použít k aktivaci vrstvy ve výkresu s názvem SCHEMA.CAD:

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

Pokud nezadáte objektu třídy, automatizaci Určuje spuštění aplikace a objekt, který chcete aktivovat, na základě názvu souboru, který zadáte. Některé soubory však mohou podporovat více než jedné třídy objektu. Například výkresu může podporovat tři různé typy objektů: objekt aplikace , nakresleného objektu a objekt nástrojů , které jsou součástí stejného souboru. Pokud chcete určit, které objekt v souboru, který chcete aktivovat, pomocí argument volitelné předmětu . Příklad:

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

V příkladu FIGMENT je název výkresu aplikace a DRAWING jeden z typů objektů, které podporuje.

Po aktivaci objektu odkazy v kódu pomocí objektová proměnná, který jste definovali. V předchozím příkladu máte přístup k vlastnosti a metody nového objektu pomocí proměnných objekt MyObject. Příklad:

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

Poznámka : Funkce GetObject po aktuální instance objekt nebo pokud chcete vytvořit objekt pomocí souboru už načíst. Pokud není žádná aktuální instance a nechcete, aby objekt začít se souborem načíst, použijte funkci CreateObject .

Pokud objekt zaregistroval jako objekt jednoduchou, vytvoří se jenom jedna instance objektu, bez ohledu na to kolikrát se spustí CreateObject . S jednou instancí objekt, vrátí funkce GetObject vždy stejné instanci při volání s řetězec nulové délky ("") syntaxe a způsobí chybu, pokud je argument cesta vynechán. Funkce GetObject nelze použít k získání odkazu na blok předmětu vytvořený s jazykem Visual Basic.

Příklad

Tento příklad používá funkci GetObject získat odkaz na určité Microsoft Office Excel 2007 listu (MyXL). Ho pomocí vlastnosti listu aplikace Excel viditelné podnabídky zavření ho atd. Pomocí dvou volání API, postup DetectExcel Sub vyhledá Excelu a je-li spuštěna, zadá jej do tabulky spuštěných objektů. První volání GetObject způsobí chybu, pokud už není spuštěný aplikaci Microsoft Excel. V příkladu způsobí chybu příznak ExcelWasNotRunning nastavena na hodnotu True. Druhé volání GetObject Určuje soubor otevřete. Pokud už není spuštěný Excelu, druhé volání jej spustil a vrátí odkazu na list představované zadaný soubor mytest.xls. Soubor musí existovat v zadaném umístění; v opačném chybová Visual Basic automatizaci chybová zpráva. Příklad zajišťuje pak aplikace Excel a okna obsahující zadaný sešit viditelný. Nakonec pokud jste udělali žádné předchozí verzi Excelu spuštěná, kód pomocí aplikace objekt Quit metody zavřete Excel. Pokud byla aplikace už systém, bez pokusu zavřete jej. Odkaz na samotné vydání nastavením na žádné.

' 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

Poznámka : Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×