Funkcija GetObject

Piezīme.:  Mēs vēlamies sniegt jums visjaunāko palīdzības saturu jūsu valodā, cik vien ātri to varam. Šī lapa ir tulkota automatizēti, un tajā var būt gramatiskas kļūdas un neprecizitātes. Mūsu nolūks ir šo saturu padarīt jums noderīgu. Vai lapas lejasdaļā varat mums pavēstīt, vai informācija jums noderēja? Ērtai atsaucei šeit ir šis raksts angļu valodā .

Piezīme.: Funkcija, metodi, objektu vai rekvizītu, kas aprakstīts šajā tēmā ir atspējots, ja Microsoft Jet Expression Service ir atvērta smilškastes režīmu, kas neļauj iespējami nedrošās izteiksmes novērtēšanas. Lai iegūtu papildinformāciju par smilškastes režīmu, meklējiet "smilškastes režīma" palīdzībā.

Atgriež atsauci uz objektu, ko nodrošina komponents ActiveX.

Sintakse

GetObject ([ceļa nosaukums ] [, mācību priekšmeta ] )

Funkcija GetObject sintaksē ir šādi argumenti:

Arguments

Apraksts

ceļa nosaukums

Pēc izvēles. Varianta (Virknes). Pilnu ceļu un kurā objekts, lai izgūtu faila nosaukumu. Ja ceļa nosaukums tiek izlaists, ir nepieciešams mācību priekšmetu .

mācību priekšmeta

Pēc izvēles. Varianta (Virknes). Virkne, kas norāda klase objekta.


Mācību priekšmeta arguments izmanto sintakse APPNAME %.objecttype un ir šādas daļas:

Daļa

Apraksts

APPNAME %

Obligāts. Varianta (Virknes). Lietojumprogrammas, nodrošinot objektu nosaukumu.

objecttype

Obligāts. Varianta (Virknes). Tipa vai objekta klase izveidei.


Piezīmes

Piezīme.: Turpmākajos piemēros redzama šīs funkcijas izmantošana Visual Basic for Applications (VBA) modulī. Lai iegūtu papildinformāciju par darbu ar VBA, nolaižamajā sarakstā atlasiet Uzziņas materiāli izstrādātājiem blakus meklēšanas lodziņam un ievadiet šajā lodziņā vienu vai vairākus vārdus.

Izmantojiet funkciju GetObject piekļūt ActiveX objektu no faila un objektu piešķiršana objekta mainīgais. Izmantojiet priekšrakstu iestatīšana , lai piešķirtu objektam atgrieza GetObject uz objekta mainīgo. Piemēram:

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

Izpildot šādu kodu, tiek startēta programma, kas saistītas ar norādīto ceļu un tiek aktivizēts objekts norādītajā failā.

Ja ceļa nosaukums ir tukša virkne (""), funkcija GetObject atgriež norādītā tipa jaunu objekta gadījumu. Ja ceļa nosaukums arguments tiek izlaists, funkcija GetObject atgriež pašlaik aktīva norādītā tipa objekts. Ja nav norādītā tipa objekts, rodas kļūda.

Dažas lietojumprogrammas atļauj aktivizēt daļu no faila. Pievienojiet izsaukuma zīmi (!) faila nosaukuma un pēc tam seko virkne, kas identificē failu, kuru vēlaties aktivizēt daļu. Informāciju par to, kā izveidot šādu virkni, skatiet dokumentāciju lietojumprogrammu, kurā izveidots objekts.

Piemēram, zīmēšanas lietojumprogrammas var būt vairākslāņu zīmētu glabāta failā. Lai aktivizētu slāņu laikā zīmēšanas nosaukumu SCHEMA.CADvarētu izmantot šādu kodu:

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

Ja nenorādīsit objekta mācību priekšmeta, automatizācijas nosaka, startēt programmu un objekta, lai aktivizētu, pamatojoties uz faila nosaukumu, ko esat norādījis. Daži faili var atbalstīt vairāk nekā vienu objekta klasi. Piemēram, zīmējumu var atbalstīt trīs dažādu veidu objekti: programmas objektu, zīmētais objekts un rīkjoslas objektu, kas ir daļa no tā paša faila. Lai norādītu, kurš objekts failā, kuru vēlaties aktivizēt, izmantojiet papildu klases argumentu. Piemēram:

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

Šajā piemērā FIGMENT ir zīmēšanas lietojumprogrammas un DRAWING nosaukums ir viens no objektu tipi, kas to atbalsta.

Kad objekts ir aktivizēts, ir atsauce kodā, izmantojot jūsu definēto objekta mainīgo. Tālāk redzamajā piemērā varat piekļūt jauna objekta rekvizīti un metodes, izmantojot objekta mainīgo MyObject. Piemēram:

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

Piezīme.: Lietojiet funkciju GetObject , kad ir pašreizējās instances objekta vai ja vēlaties, lai izveidotu objektu ar failu, kas jau ir instalēta. Ja nav neviena pašreizējās instances un jūs vēlaties, lai objekta sākšana programmā ielādēta failu, izmantojiet funkciju CreateObject .

Ja objekts ir reģistrējusies kā atsevišķas instances objekts, tikai viena objekta gadījums tiek izveidots, neatkarīgi no tā, cik reizes izpildīta funkcija CreateObject . Atsevišķas instances objekts, funkcija GetObject vienmēr atgriež darbplūsmas instancē, ja tiks izsauktas ar nulles garuma virkni ("") sintakse, un tas izraisa kļūdu, ja ceļa nosaukums arguments tiek izlaists. Funkcija GetObject nevar izmantot, lai iegūtu atsauci uz mācību priekšmeta, kas izveidotas, izmantojot Visual Basic.

Piemērs

Šajā piemērā funkcija GetObject , lai iegūtu atsauce uz konkrētu Microsoft Office Excel 2007 darblapu (MyXL). Darblapas lietojumprogrammas rekvizīts to izmanto, lai programmu Excel būtu redzama, lai to aizvērtu, un tā tālāk. Izmantojot divus API zvanus, procedūra DetectExcel Sub meklē Excel, un, ja tā ir atvērta, ievada darbojas objektu tabulā. Funkcija GetObject pirmo zvanu izraisa kļūdu, ja vēl nedarbojas Microsoft Excel. Šajā piemērā kļūdu izraisa Excel_nedarbojas karodziņš, lai iestatīt vērtību True. Funkcija GetObject otro zvanu norāda faila atvēršanai. Ja Excel vēl nedarbojas, otrais izsaukums to sāk un atgriež atsauci uz darblapu apzīmēto norādīto failu mytest. Failam ir jāatrodas norādītajā atrašanās vietā; Pretējā gadījumā tiek ģenerēta Visual Basic kļūdas automatizācijas kļūda. Pēc piemēra kods parāda gan programmu Excel, gan logu, kurā ir konkrētā darblapa. Visbeidzot, ja sakrita bez iepriekšējas versijas Excel darbojas, kodu izmanto programmas objektu Quit metodi, lai aizveriet programmu Excel. Ja programma jau palaista, nav mēģināts to aizvērtu. Tiek palaista pati atsauce, iestatot nekas.

' 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
Paplašiniet savas Office prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Office Insider programmai

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×