CreateObject İşlevi

Uygulandığı Öğe
Microsoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

Not

Microsoft Jet İfade Hizmeti korumalı alan modunda çalışıyorsa, bu konuda açıklanan işlev, yöntem, nesne veya özellik devre dışı bırakılır ve bu da güvenli olmayabilecek ifadelerin değerlendirilmesini engeller. Korumalı alan modu hakkında daha fazla bilgi için, Yardım'da "korumalı alan modu" araması yapın.

Bir ActiveX nesnesine başvuru oluşturur ve döndürür.

Söz dizimi

CreateObject(class [, servername] )

CreateObject işlevinin söz diziminde aşağıdaki bağımsız değişkenler bulunur:

Bağımsız değişken Açıklama
sınıf Gerekli. Değişken (dize). Oluşturulacak nesnenin uygulama adı ve sınıfı.
sunucu adı İsteğe bağlı. Değişken (dize). Nesnenin oluşturulacağı ağ sunucusunun adı. Sunucuadı boş bir dize ("") ise, yerel bilgisayar kullanılır.

    

Sınıfbağımsız değişkeni appname.objecttype söz dizimini kullanır ve şu bölümlere sahiptir:

Bölüm Açıklama
uygulama adı Gerekli. Değişken (dize). Nesneyi sağlayan uygulamanın adı.
nesne türü Gerekli. Değişken (dize). Oluşturulacak nesnenin türü veya sınıfı.

    

Açıklamalar

Otomasyonu destekleyen her uygulama en az bir nesne türü sağlar. Örneğin, bir sözcük işlem uygulaması bir Application nesnesi, bir Document nesnesi ve bir Toolbar nesnesi sağlayabilir.

ActiveX nesnesi oluşturmak için CreateObject tarafından döndürülen nesneyi bir nesne değişkenine atayın:

Not

Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülünde kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, rama'nın yanındaki açılan listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim yazın.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Bu örnekte, bir Excel elektronik tablo nesnesini Access veritabanının içinden otomatikleştireceğiz. Bu kod, uygulamayı nesneyi (bu örnekte bir Microsoft Excel elektronik tablosu) oluşturarak başlatır. Bir nesne oluşturulduktan sonra, tanımladığınız nesne değişkenini kullanarak kodda bu nesneye başvurursunuz. Aşağıdaki örnekte, ExcelSheetnesne değişkenini ve nesne ve koleksiyon dahil olmak üzere diğer Excel nesnelerini kullanarak yeni nesnenin özelliklerine ve yöntemlerine ApplicationCells erişirsiniz.

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

Yan tümceyle bir nesne değişkeni As Object bildirmek, herhangi bir nesne türüne başvuru içerebilen bir değişken oluşturur. Ancak, bu değişken aracılığıyla nesneye erişim geç bağlıdır; Başka bir deyişle, bağlama, programınız çalıştırıldığında gerçekleşir. Erken bağlama, yani program derlendiğinde bağlama ile sonuçlanan bir nesne değişkeni oluşturmak için, nesne değişkenini belirli bir sınıf kimliğiyle bildirin. Örneğin, aşağıdaki Excel başvurularını bildirebilir ve oluşturabilirsiniz:

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

Erken bağlı bir değişken aracılığıyla yapılan başvuru daha iyi performans sağlayabilir, ancak yalnızca bildirimde belirtilen sınıfa bir başvuru içerebilir.

CreateObject işlevi tarafından döndürülen bir nesneyi, bağımsız değişken olarak bir nesne bekleyen bir işleve geçirebilirsiniz. Örneğin, aşağıdaki kod Excel.Application nesnesine başvuru oluşturur ve geçirir:

Call MySub (CreateObject("Excel.Application"))

Uzak ağa bağlı bir bilgisayarda, bilgisayarın adını CreateObject'inservername bağımsız değişkenine geçirerek bir nesne oluşturabilirsiniz. Bu ad, bir paylaşım adının Makine Adı bölümüyle aynıdır: "\\Sunucum\Genel" adlı bir paylaşım için sunucu adı "Sunucum"dur.

Not

Bir uygulamayı ağa bağlı uzak bir bilgisayarda görünür yapma hakkında ek bilgi için COM belgelerine bakın (bkz. Microsoft Developer Network). Uygulamanız için bir kayıt defteri anahtarı eklemeniz gerekebilir.

Aşağıdaki kod, adlı uzak bir bilgisayarda MyServerçalışan bir Excel örneğinin sürüm numarasını döndürür:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Uzak sunucu yoksa veya kullanılamıyorsa çalıştırma hatası oluşur.

Not

Nesnenin geçerli bir örneği olmadığında CreateObject kullanın. Nesnenin bir örneği zaten çalışıyorsa, yeni bir örnek başlatılır ve belirtilen türde bir nesne oluşturulur. Geçerli örneği kullanmak veya uygulamayı başlatıp bir dosya yüklemesini sağlamak için GetObject işlevini kullanın.

Bir nesne kendisini tek örnekli bir nesne olarak kaydettiyse, CreateObject kaç kez yürütülürse yürütülsün, nesnenin yalnızca bir örneği oluşturulur.

Örnek

Bu örnekte, bir başvuru (

xlApp

) Excel'e gidin. Excel'in Visible özelliğine erişmek için başvuruyu kullanır ve ardından Excel'i kapatmak için Quit yöntemini kullanır. Son olarak, referansın kendisi serbest bırakılır.

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
    ' You may have to set Visible property to True
    ' if you want to see the application.
xlApp.Visible = True
    ' Use xlApp to access Microsoft Excel's 
    ' other objects.
xlApp.Quit    ' When you finish, use the Quit method to close 
Set xlApp = Nothing    ' the application, then release the reference.