Fungsi GetObject

Penting: Artikel ini diterjemahkan oleh mesin, lihatlah notis penafian. Sila dapatkan versi Bahasa Inggeris artikel ini di sini sebagai rujukan anda

Nota: Fungsi, kaedah, objek atau sifat yang diperihalkan dalam topik ini dinyahdayakan jika Perkhidmatan Microsoft Jet ungkapan berjalan dalam mod kotak pasir yang menghalang penilaian ungkapan yang mungkin tidak selamat. Untuk maklumat lanjut tentang mod kotak pasir, Cari "mod kotak Pasir" dalam bantuan.

Mengembalikan rujukan kepada objek yang disediakan oleh komponen ActiveX.

Sintaks

GetObject ([nama laluan terpencil ] [, kelas ] )

Sintaks fungsi GetObject mempunyai argumen ini:

Argumen

Perihalan

nama laluan terpencil

Pilihan. Varian (Rentetan). Laluan penuh dan nama fail yang mengandungi objek untuk mendapatkan semula. Jika nama laluan terpencil dikeluarkan, kelas yang diperlukan.

kelas

Pilihan. Varian (Rentetan). Rentetan yang mewakili kelas objek.


Kelas argumen menggunakan sintaks appname.objecttype dan mempunyai bahagian ini:

Bahagian

Perihalan

AppName

Diperlukan. Varian (Rentetan). Nama aplikasi yang menyediakan objek.

objecttype

Diperlukan. Varian (Rentetan). Jenis atau kelas objek untuk mencipta.


Catatan

Nota: Contoh berikut menunjukkan penggunaan fungsi ini dalam Visual Basic for Applications (VBA) modul. Untuk maklumat lanjut tentang bekerja dengan VBA, pilih Rujukan pembangun dalam senarai juntai bawah di sebelah Cari dan memasukkan satu atau lebih istilah dalam kotak carian.

Gunakan fungsi GetObject untuk mencapai objek ActiveX daripada fail dan memperuntukkan objek yang pemboleh ubah objek. Gunakan kenyataan Setkan untuk memperuntukkan objek yang dikembalikan oleh GetObject pemboleh ubah objek. Contohnya:

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

Apabila Kod ini dilaksanakan, aplikasi yang berkaitan dengan ditentukan nama laluan terpencil bermula dan objek dalam fail yang ditentukan diaktifkan.

Jika nama laluan terpencil adalah rentetan panjang sifar (""), GetObject mengembalikan Tika objek baru daripada jenis yang ditentukan. Jika argumen nama laluan terpencil dikeluarkan, GetObject mengembalikan objek aktif pada masa ini daripada jenis yang ditentukan. Jika tiada objek daripada jenis yang ditentukan wujud, ralat berlaku.

Sesetengah aplikasi membenarkan anda untuk mengaktifkan bahagian fail. Menambah tanda seru (!) hujung nama fail dan ikuti dengan rentetan yang mengenal pasti bahagian fail yang anda ingin Aktifkan. Untuk maklumat tentang cara untuk mencipta rentetan ini, lihat dokumentasi bagi aplikasi yang dicipta objek.

Contohnya, dalam aplikasi lukisan yang anda mungkin mempunyai berbilang lapisan untuk melukis yang disimpan dalam fail. Anda boleh menggunakan kod berikut untuk mengaktifkan pada lapisan dalam lukisan dipanggil SCHEMA.CAD:

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

Jika anda tidak menentukan objek kelas, automasi menentukan aplikasi untuk memulakan dan objek untuk mengaktifkan, berdasarkan pada nama fail yang anda sediakan. Sesetengah fail, Walau bagaimanapun, mungkin menyokong lebih daripada satu kelas objek. Contohnya, lukisan mungkin menyokong tiga jenis objek: objek aplikasi , objek lukisan dan objek bar alat , Semua yang merupakan sebahagian daripada fail yang sama. Untuk menentukan objek dalam fail yang anda ingin aktifkan, menggunakan argumen pilihan kelas . Contohnya:

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

Dalam contoh, FIGMENT adalah nama aplikasi lukisan dan DRAWING salah satu daripada jenis objek yang ia menyokong.

Selepas objek diaktifkan, anda merujuk ia dalam kod yang menggunakan pemboleh ubah objek yang anda takrifkan. Dalam contoh sebelumnya, anda mencapai sifat dan kaedah objek baru menggunakan pemboleh ubah objek MyObject. Contohnya:

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

Nota: Gunakan fungsi GetObject apabila terdapat kejadian semasa objek atau jika anda ingin mencipta objek dengan fail yang telah dimuatkan. Jika terdapat kejadian semasa, dan anda tidak ingin objek yang bermula dengan fail yang dimuatkan, gunakan fungsi CreateObject .

Jika objek telah didaftar itu sendiri sebagai objek tunggal-kejadian, hanya satu Tika objek dicipta, tanpa mengira bilangan kali yang CreateObject dilaksanakan. Dengan objek tunggal-kejadian, GetObject sentiasa mengembalikan Tika yang sama apabila dipanggil dengan rentetan panjang sifar ("") sintaks, dan ia akan menyebabkan ralat jika argumen nama laluan terpencil dikeluarkan. Anda tidak boleh menggunakan GetObject untuk mendapatkan rujukan kepada kelas yang dicipta dengan Visual Basic.

Contoh

Contoh ini menggunakan fungsi GetObject untuk mendapatkan rujukan kepada lembaran kerja khusus Microsoft Office Excel 2007 (MyXL). Ia menggunakan lembaran kerja yang aplikasi sifat untuk menjadikan Excel kelihatan, untuk menutupnya dan sebagainya. Menggunakan dua API panggilan, prosedur DetectExcel Sub mencari Excel, dan jika ia berjalan, memasukkan dalam Jadual objek berjalan. Panggilan pertama GetObject menyebabkan ralat jika Microsoft Excel tidak berjalan. Dalam contoh, ralat menyebabkan ExcelWasNotRunning bendera disetkan kepada benar. Panggilan kedua GetObject menentukan fail untuk membuka. Jika Excel tidak berjalan, panggilan kedua memulakannya dan mengembalikan rujukan kepada lembaran kerja yang diwakili oleh fail yang ditentukan, mytest.xls. Fail mesti wujud dalam lokasi yang ditentukan; Jika tidak, ralat Visual Basic ralat automasi dijanakan. Seterusnya, kod contoh menjadikan Excel dan tetingkap yang mengandungi lembaran kerja tertentu yang kelihatan. Akhirnya, jika terdapat tiada versi terdahulu Excel berjalan, kod yang menggunakan kaedahtQuiobjek aplikasi untuk tutup Excel. Jika aplikasi belum dijalankan, cubaan tiada dibuat untuk menutupnya. Rujukan yang dikeluarkan oleh seting untuk apa-apa.

' 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

Nota: Notis Penafian Penterjemahan Mesin: Artikel ini telah diterjemah oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan penterjemahan mesin ini untuk membantu pengguna-pengguna yang tidak bertutur dalam Bahasa Inggeris supaya dapat menikmati kandungan mengenai produk, perkhidmatan dan teknologi Microsoft. Artikel ini mungkin mengandungi ralat perbendaharaan kata, sintaks atau tatabahasa kerana ia diterjemahkan oleh mesin.

Kembangkan kemahiran anda
Jelajahi latihan
Dapatkan ciri baru terlebih dahulu
Sertai Office Insiders

Adakah maklumat ini membantu?

Terima kasih atas maklum balas anda!

Terima kasih atas maklum balas anda! Nampaknya ia mungkin akan membantu untuk menyambungkan anda kepada salah seorang daripada ejen sokongan Office kami.

×