Bagikan melalui


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 = "");
[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 dari 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 Microsoft Excel 10.0 Object Library.

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 dapat berisi referensi ke semua jenis objek. Namun, akses ke objek melalui variabel tersebut terikat terlambat, yaitu, pengikatan terjadi saat 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 perakitan 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-objek ini lebih mudah digunakan dan lebih dapat diandalkan ketika digunakan dengan perakitan 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 tersebut 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 setara untuk membuat objek .NET Framework, Activator di System namespace berisi metode untuk membuat objek lokal atau jarak jauh. Secara khusus, CreateInstance metode atau CreateInstanceFrom metode mungkin 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.

Berlaku untuk

Lihat juga