Applies ToAccess untuk Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Catatan: Fungsi, metode, objek, atau properti yang dijelaskan dalam topik ini dinonaktifkan jika Layanan Ekspresi Microsoft Jet berjalan dalam 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 objek yang disediakan oleh komponen ActiveX.

Sintaks

GetObject([pathname ] [, class ] )

Sintaks fungsi GetObject memiliki argumen ini:

Argumen

Deskripsi

nama jalur

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

kelas

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

Kelasargumen menggunakan nama aplikasi sintaks.objecttype dan memiliki bagian ini:

Bagian

Deskripsi

nama aplikasi

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

tipe objek

Diperlukan. Varian (String). Tipe atau kelas objek yang akan dibuat.

Keterangan

Catatan: Contoh yang mengikuti demonstrasi penggunaan fungsi ini dalam modul Visual Basic for Applications (VBA). Untuk informasi selengkapnya 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 ke variabel objek. Gunakan pernyataan Atur untuk menetapkan objek yang dikembalikan oleh GetObject ke variabel objek. Misalnya:

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

Ketika kode ini dijalankan, aplikasi yang terkait dengan nama jalur yang ditentukan dimulai dan objek dalam file yang ditentukan diaktifkan.

Jika nama jalur adalah string panjang-nol (""), GetObject mengembalikan instans objek baru dari tipe yang ditentukan. Jika argumen pathname dihilangkan, GetObject mengembalikan objek aktif saat ini dari tipe yang ditentukan. Jika tidak ada objek dari tipe yang ditentukan, kesalahan akan terjadi.

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

Misalnya, dalam aplikasi menggambar, Anda mungkin memiliki beberapa lapisan pada gambar yang disimpan dalam file. Anda dapat menggunakan kode berikut untuk mengaktifkan lapisan dalam gambar yang disebut SCHEMA.CAD:

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

Jika Anda tidak menentukan kelas objek, Otomatisasi menentukan aplikasi untuk dimulai dan objek untuk diaktifkan, berdasarkan nama file yang Anda sediakan. Namun, beberapa file mungkin mendukung lebih dari satu kelas objek. Misalnya, gambar mungkin mendukung tiga tipe objek yang berbeda: objek Aplikasi , objek Gambar , dan objek Toolbar , yang semuanya merupakan bagian dari file yang sama. Untuk menentukan objek mana dalam file yang ingin Anda aktifkan, gunakan argumen kelas opsional. 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 didukungnya.

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

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

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

Jika objek telah didaftarkan sebagai objek instans tunggal, hanya satu instans objek yang dibuat, berapa pun berapa kali CreateObject dijalankan. Dengan objek instans tunggal, GetObject selalu mengembalikan instans yang sama ketika dipanggil dengan sintaks string panjang-nol (""), dan menyebabkan kesalahan jika argumen pathname dihilangkan. Anda tidak dapat menggunakan GetObject untuk mendapatkan referensi ke kelas yang dibuat dengan Visual Basic.

Contoh

Contoh ini menggunakan fungsi GetObject untuk mendapatkan referensi ke lembar kerja Excel tertentu (MyXL). Aplikasi menggunakan properti Aplikasi lembar kerja untuk membuat Excel terlihat, untuk menutupnya, dan seterusnya. Menggunakan dua panggilan API, Sub prosedur DetectExcel mencari Excel, dan jika dijalankan, memasukkannya dalam Tabel Objek Yang Berjalan. Panggilan pertama ke GetObject menyebabkan kesalahan jika Microsoft Excel belum berjalan. Dalam contoh, kesalahan menyebabkan bendera ExcelWasNotRunning diatur ke True. Panggilan kedua ke GetObject menentukan file untuk dibuka. Jika Excel belum berjalan, panggilan kedua memulainya dan mengembalikan referensi ke lembar kerja yang dinyatakan oleh file tertentu, mytest.xls. File harus ada di lokasi yang ditentukan; jika tidak, kesalahan Automasi kesalahan Visual Basic dihasilkan. Berikutnya, kode contoh membuat Excel dan jendela yang berisi lembar kerja tertentu terlihat. Akhirnya, jika tidak ada versi Excel sebelumnya yang berjalan, kode menggunakan metode Quit objek Aplikasi untuk menutup Excel. Jika aplikasi sudah berjalan, tidak ada upaya yang dilakukan untuk menutupnya. Referensi itu sendiri dirilis dengan mengaturnya 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

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.