Interaction.CreateObject(String, String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 = "");
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object CreateObject (string ProgId, string? ServerName = "");
public static object CreateObject (string ProgId, string ServerName = "");
static member CreateObject : string * string -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateObject : string * string -> obj
Public Function CreateObject (ProgId As String, Optional ServerName As String = "") As Object
Parameter
- ProgId
- String
Wajib diisi.
String
. ID program objek yang akan dibuat.
- ServerName
- String
Opsional.
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.
- Atribut
Pengecualian
Server tidak tersedia
Tidak ada objek dari tipe yang ditentukan.
Contoh
Contoh berikut menggunakan CreateObject
fungsi 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 tab COM dari kotak dialog Tambahkan Referensi pada menu Proyek . Nama pustaka tipe bervariasi tergantung pada versi Excel yang terinstal di komputer Anda. Misalnya, pustaka tipe untuk Microsoft Excel 2002 diberi nama Pustaka Objek Microsoft Excel 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
klausa membuat variabel yang dapat berisi referensi ke semua jenis objek. Namun, akses ke objek melalui variabel tersebut terlambat terikat, 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 tab COM dari kotak dialog Tambahkan Referensi pada menu Proyek . Kemudian deklarasikan variabel objek dari jenis objek tertentu. Dalam kebanyakan kasus, lebih efisien untuk menggunakan Dim
pernyataan dan rakitan 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 rakitan interop utama (PIA) untuk pustaka tersebut; jika menemukannya, maka ia menggunakannya. Jika tidak menemukan PIA, maka pia membuat rakitan interoperabilitas yang berisi kelas interoperabilitas lokal untuk setiap kelas di pustaka COM. Untuk informasi selengkapnya, lihat Interoperabilitas COM dalam Aplikasi .NET Framework.
Anda umumnya harus menggunakan objek yang sangat terikat dan rakitan interop utama jika memungkinkan. Contoh di bawah ini menggunakan CreateObject
fungsi dengan objek Microsoft Office hanya untuk tujuan demonstrasi. Namun, objek ini lebih mudah digunakan dan lebih dapat diandalkan ketika digunakan dengan rakitan interop utama yang sesuai.
Membuat Objek pada 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."
Catatan
Lihat dokumentasi COM (lihat Microsoft Developer Network) 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.
Catatan
Gunakan CreateObject
ketika tidak ada instans objek saat ini. Jika instans objek sudah berjalan, instans baru dimulai, dan objek dari jenis yang ditentukan dibuat. Untuk menggunakan instans saat ini, atau untuk memulai aplikasi dan memuat file, gunakan GetObject
fungsi . 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 System namespace berisi metode untuk membuat objek lokal atau jarak jauh. Secara khusus, CreateInstance metode atau metode mungkin CreateInstanceFrom berguna.
Penting
Fungsi ini CreateObject
memerlukan izin kode yang tidak dikelola, yang mungkin memengaruhi eksekusinya dalam situasi kepercayaan parsial. Untuk informasi selengkapnya, lihat SecurityPermission dan Izin Akses Kode.