Interaction.CreateObject(String, String) Metode

Definisi

Membuat dan mengembalikan referensi ke objek COM. CreateObject tidak dapat digunakan untuk membuat instans kelas di Visual Basic kecuali kelas tersebut secara eksplisit diekspos sebagai komponen COM.

public static object CreateObject(string ProgId, string ServerName = "");
static member CreateObject : string * string -> obj
Public Function CreateObject (ProgId As String, Optional ServerName As String = "") As Object

Parameter

ProgId
String

Required. String. ID program objek yang akan dibuat.

ServerName
String

Optional. String. Nama server jaringan tempat objek akan dibuat. Jika ServerName adalah string kosong (""), komputer lokal digunakan.

Mengembalikan

Membuat dan mengembalikan referensi ke objek COM. CreateObject tidak dapat digunakan untuk membuat instans kelas di Visual Basic kecuali kelas tersebut secara eksplisit diekspos sebagai komponen COM.

Pengecualian

Server tidak tersedia

Tidak ada objek dari jenis yang ditentukan.

Contoh

Contoh berikut menggunakan fungsi CreateObject untuk membuat lembar kerja Microsoft Excel dan menyimpan lembar kerja ke file. Untuk menggunakan contoh ini, Excel harus diinstal pada komputer tempat program ini berjalan. Selain itu, Anda harus menambahkan referensi ke pustaka jenis dari COM tab Tambahkan Referensi pada menu Project. Nama pustaka jenis bervariasi tergantung pada versi Excel yang diinstal pada komputer Anda. Misalnya, pustaka jenis untuk Microsoft Excel 2002 diberi nama Microsoft Excel Pustaka Objek 10.0.

Sub TestExcel()
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet

    xlApp = CType(CreateObject("Excel.Application"), 
                Microsoft.Office.Interop.Excel.Application)
    xlBook = CType(xlApp.Workbooks.Add, 
                Microsoft.Office.Interop.Excel.Workbook)
    xlSheet = CType(xlBook.Worksheets(1), 
                Microsoft.Office.Interop.Excel.Worksheet)

    ' The following statement puts text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
    ' The following statement shows the sheet.
    xlSheet.Application.Visible = True
    ' The following statement saves the sheet to the C:\Test.xls directory.
    xlSheet.SaveAs("C:\Test.xls")
    ' Optionally, you can call xlApp.Quit to close the workbook.
End Sub

Keterangan

Untuk membuat instans komponen COM, tetapkan objek yang dikembalikan oleh CreateObject ke variabel objek:

Sub CreateADODB()
   Dim adoApp As Object
   adoApp = CreateObject("ADODB.Connection")
End Sub

Jenis variabel objek yang Anda gunakan untuk menyimpan objek yang dikembalikan dapat memengaruhi performa aplikasi Anda. Mendeklarasikan variabel objek dengan As Object klausul membuat variabel yang bisa berisi referensi ke tipe objek apa pun. Namun, akses ke objek melalui variabel tersebut terikat terlambat, yaitu, pengikatan terjadi ketika program Anda berjalan. Ada banyak alasan Anda harus menghindari pengikatan terlambat, termasuk performa aplikasi yang lebih lambat.

Anda dapat membuat variabel objek yang menghasilkan pengikatan awal - yaitu, mengikat saat program dikompilasi. Untuk melakukannya, tambahkan referensi ke pustaka jenis untuk objek Anda dari COM tab Tambahkan Referensi pada menu Project. Kemudian deklarasikan variabel objek dari jenis objek tertentu. Dalam kebanyakan kasus, lebih efisien untuk menggunakan Dim pernyataan dan perakitan interop utama untuk membuat objek daripada menggunakan CreateObject fungsi .

Berinteraksi dengan Kode Tidak Terkelola

Masalah lain adalah bahwa objek COM menggunakan kode yang tidak dikelola - kode tanpa manfaat dari runtime bahasa umum. Ada tingkat kompleksitas yang adil yang terlibat dalam mencampur kode terkelola Visual Basic dengan kode yang tidak dikelola dari COM. Saat Anda menambahkan referensi ke objek COM, Visual Basic mencari perakitan interop utama (PIA) untuk pustaka tersebut; jika menemukannya, maka ia menggunakannya. Jika tidak menemukan PIA, pia membuat rakitan interoperabilitas yang berisi kelas interoperabilitas lokal untuk setiap kelas di pustaka COM. Untuk informasi selengkapnya, lihat Interoperabilitas COM di Aplikasi .NET Framework.

Anda umumnya harus menggunakan objek yang sangat terikat dan rakitan interop utama jika memungkinkan. Contoh di bawah ini menggunakan fungsi CreateObject dengan objek Microsoft Office hanya untuk tujuan demonstrasi. Namun, objek-objek ini lebih mudah digunakan dan lebih dapat diandalkan ketika digunakan dengan perakitan interop utama yang sesuai.

Membuat Objek di Komputer Jarak Jauh

Anda dapat membuat objek pada komputer jaringan jarak jauh dengan meneruskan nama komputer ke ServerName argumen CreateObject fungsi. Nama itu sama dengan bagian Nama Mesin dari nama berbagi: untuk berbagi bernama "\\MyServer\Public," ServerName adalah "MyServer."

Note

Lihat dokumentasi COM (lihat Jaringan Pengembang Microsoft) untuk informasi tambahan tentang membuat aplikasi dapat diakses di komputer jaringan jarak jauh. Anda mungkin perlu menambahkan kunci registri untuk aplikasi Anda.

Kode berikut mengembalikan nomor versi instans Excel yang berjalan di komputer jarak jauh bernama MyServer:

Sub CreateRemoteExcelObj()
    Dim xlApp As Object
    ' Replace string "\\MyServer" with name of the remote computer.
    xlApp = CreateObject("Excel.Application", "\\MyServer")
    MsgBox(xlApp.Version)
End Sub

Jika nama server jarak jauh salah, atau jika tidak tersedia, kesalahan run-time terjadi.

Note

Gunakan CreateObject ketika tidak ada instans objek saat ini. Jika instans objek sudah berjalan, instans baru dimulai, dan objek dari tipe yang ditentukan dibuat. Untuk menggunakan instans saat ini, atau untuk memulai aplikasi dan memuat file, gunakan fungsi .GetObject Jika objek telah mendaftarkan dirinya sebagai objek instans tunggal, hanya satu instans objek yang dibuat, tidak peduli berapa kali CreateObject dijalankan.

Membuat Objek Kerangka Kerja

Anda hanya dapat menggunakan CreateObject fungsi untuk membuat objek COM. Meskipun tidak ada mekanisme yang sama persis untuk membuat objek .NET Framework, Activator di namespace System berisi metode untuk membuat objek lokal atau jarak jauh. Secara khusus, CreateInstance metode atau metode mungkin CreateInstanceFrom berguna.

Important

Fungsi ini CreateObject memerlukan izin kode yang tidak dikelola, yang dapat memengaruhi eksekusinya dalam situasi kepercayaan parsial. Untuk informasi selengkapnya, lihat SecurityPermission dan Izin Akses Kode.

Berlaku untuk

Lihat juga