Fungsi GetObject

Catatan:  Kami ingin secepatnya menyediakan konten bantuan terbaru dalam bahasa Anda. Halaman ini diterjemahkan menggunakan mesin dan mungkin terdapat kesalahan tata bahasa atau masalah keakuratan. Kami bertujuan menyediakan konten yang bermanfaat untuk Anda. Dapatkah Anda memberi tahu kami apakah informasi ini bermanfaat untuk Anda di bagian bawah halaman ini? Berikut artikel dalam bahasa Inggris untuk referensi.

Catatan: Fungsi, metode, objek, atau properti yang dijelaskan dalam topik ini dinonaktifkan jika Layanan ekspresi Microsoft Jet sedang berjalan di mode kotak pasir yang mencegah evaluasi ekspresi yang berpotensi tidak aman. Untuk informasi selengkapnya tentang mode kotak pasir, Cari "mode kotak pasir" di bantuan.

Mengembalikan referensi ke sebuah objek yang disediakan oleh komponen ActiveX.

Sintaks

GetObject ([path ] [, kelas ] )

Sintaks fungsi GetObject memiliki argumen ini:

Argumen

Deskripsi

path

Opsional. Varian (String). Jalur lengkap dan nama file yang berisi objek untuk mengambil. Jika path dihilangkan, kelas diperlukan.

kelas

Opsional. Varian (String). String yang mewakili kelas objek.


Kelas argumen menggunakan sintaks appname.objecttype dan memiliki bagian berikut ini:

Bagian

Deskripsi

APPNAME

Diperlukan. Varian (String). Nama menyediakan objek aplikasi.

objecttype

Diperlukan. Varian (String). Tipe atau kelas objek untuk membuat.


Keterangan

Catatan: Contoh yang mengikuti demonstrasi penggunaan fungsi ini dalam modul Visual Basic for Applications (VBA). Untuk informasi lebih lanjut tentang bekerja dengan VBA, pilih Referensi Pengembang di daftar turun bawah di samping Cari dan masukkan satu istilah atau lebih di kotak pencarian.

Gunakan fungsi GetObject untuk mengakses objek ActiveX dari file dan menetapkan objek variabel objek. Gunakan pernyataan mengatur untuk menetapkan objek yang dihasilkan oleh GetObject variabel objek. Misalnya:

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

Ketika kode ini dijalankan, aplikasi yang terkait dengan ditentukan path mulai dan objek dalam file yang ditentukan telah diaktifkan.

Jika path adalah string panjang nol (""), GetObject mengembalikan contoh objek baru dari tipe yang ditentukan. Jika argumen path dihilangkan, GetObject mengembalikan objek yang sedang aktif dari tipe yang ditentukan. Jika tidak ada objek dari tipe yang ditentukan, kesalahan terjadi.

Beberapa aplikasi memungkinkan Anda untuk mengaktifkan bagian dari file. Menambahkan tanda seru (!) ke akhir nama file dan ikuti dengan string yang mengidentifikasi bagian dari file yang ingin Anda Aktifkan. Untuk informasi tentang cara membuat string ini, lihat dokumentasi untuk aplikasi yang dibuat objek.

Misalnya, di aplikasi gambar Anda mungkin memiliki beberapa lapisan ke gambar yang disimpan dalam file. Anda bisa menggunakan kode berikut ini untuk mengaktifkan lapisan dalam gambar disebut SCHEMA.CAD:

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

Jika Anda tidak menentukan objek kelas, otomatisasi menentukan aplikasi untuk memulai dan objek untuk mengaktifkan, berdasarkan nama file yang Anda sediakan. Beberapa file, namun, mungkin mendukung lebih dari satu kelas objek. Misalnya, gambar mungkin mendukung tiga tipe objek berbeda: objek aplikasi , objek gambar dan objek Toolbar , yang merupakan bagian dari file yang sama. Untuk menentukan objek di dalam file yang ingin Anda Aktifkan, menggunakan argumen opsional kelas . Misalnya:

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

Dalam contoh, FIGMENT adalah nama aplikasi gambar dan DRAWING adalah salah satu tipe objek yang mendukung.

Setelah objek diaktifkan, Anda mereferensikan dalam kode menggunakan variabel objek yang Anda tentukan. Dalam contoh sebelumnya, Anda mengakses properti dan metode objek baru dengan menggunakan objek variabel MyObject. Misalnya:

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

Catatan: Gunakan fungsi GetObject bila ada contoh saat ini dari objek atau jika Anda ingin membuat objek dengan file yang sudah dimuat. Jika ada contoh saat ini tidak ada, dan Anda tidak ingin objek yang dimulai dengan file yang dimuat, gunakan fungsi CreateObject .

Jika objek memiliki terdaftar itu sendiri sebagai objek tunggal-misalnya, hanya satu contoh objek dibuat, tidak peduli berapa kali CreateObject dijalankan. Dengan objek tunggal-misalnya, GetObject selalu mengembalikan contoh yang sama saat disebut dengan string panjang nol ("") sintaks, dan menyebabkan kesalahan jika argumen path dihilangkan. Anda tidak bisa menggunakan GetObject untuk mendapatkan referensi ke kelas yang dibuat dengan Visual Basic.

Contoh

Contoh ini menggunakan fungsi GetObject untuk mendapatkan referensi ke lembar kerja tertentu Microsoft Office Excel 2007 (MyXL). Menggunakan properti aplikasi lembar kerja Excel agar terlihat, untuk menutupnya, dan sebagainya. Menggunakan dua API panggilan, DetectExcel Sub prosedur terlihat untuk Excel, dan jika dijalankan, memasukkan dalam tabel objek berjalan. Panggilan pertama ke GetObject menyebabkan kesalahan jika belum dijalankan Microsoft Excel. Dalam contoh ini, kesalahan menyebabkan ExcelWasNotRunning bendera untuk diatur ke True. Panggilan kedua ke GetObject menentukan file untuk membuka. Jika Excel tidak berjalan, memulai panggilan kedua dan mengembalikan referensi ke lembar kerja yang dinyatakan oleh file yang ditentukan, mytest.xls. File harus ada di lokasi tertentu; Jika tidak, kesalahan Visual Basic otomatisasi kesalahan akan ditampilkan. Berikutnya, kode contoh membuat Excel dan jendela yang berisi lembar kerja tertentu yang terlihat. Akhirnya, jika ada versi Excel yang berjalan tanpa sebelumnya, kode menggunakan objek aplikasidi sinit metode untuk menutup Excel. Jika aplikasi telah menjalankan, tidak adalah usaha untuk menutupnya. Referensi sendiri dirilis dengan mengatur ke tidak ada.

' 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
Kembangkan keterampilan Office Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×