VBA'da CreateObject İşlevi
Nesneler, VBA kodlamasında çok önemli kavramlardır ve bir nesnenin çalışma modelinin oldukça karmaşık olduğunu anlamak. VBA kodlamasında nesnelere referans verdiğimizde bunu iki şekilde yapıyoruz, yani "Erken Bağlama" ve "Geç Bağlama". "Erken Bağlama", nesne referansını VBA'nın referans kitaplığından ayarlama işlemidir ve dosyayı başka birine gönderdiğimizde, başvuruyu ilgili nesnelere de ayarlamalarını gerektirir. Ancak, "Geç Bağlama" kullanıcının herhangi bir nesne referansı ayarlamasını gerektirmez, çünkü geç bağlama kodlamasında, VBA "CreateObject" fonksiyonunu kullanarak ilgili nesneye referansı ayarlıyoruz.

Excel VBA'daki CreateObject nedir?
Adından da anlaşılacağı üzere "Nesne Oluştur", söz konusu nesneyi Excel VBA'dan oluşturacaktır. Bu nedenle, Nesne Oluştur işlevi, bir Active X bileşeni tarafından başlatılan bir nesneye referansı döndürür.
Aşağıda, VBA'daki CreateObject işlevinin sözdizimi verilmiştir

- Class: Başlatmaya çalıştığımız nesnenin adı ve değişkene referansı ayarlıyoruz.
- (Sunucu Adı): Bu isteğe bağlı bir parametredir; dikkate alınmazsa, yalnızca yerel makineyi kullanır.
Excel VBA'da Nesne Oluşturma İşlevi Örneği
Aşağıda VBA CreateObject örnekleri verilmiştir.
Örnek 1
Şimdi VBA'daki CreateObject işlevini kullanarak PowerPoint uygulamasını excel'den nasıl başlatacağımızı göreceğiz. Excel dosyasını açın ve ALT + F11 tuşuna basarak Visual Basic Düzenleyici Penceresine gidin .
Kod:
Sub CreateObject_Example1 () End Sub

Değişkeni PowerPoint.Application olarak bildirin.

Yukarıda görebileceğiniz gibi, “PowerPoint” kelimesini yazmaya başladığımızda, ilgili aramaları gösteren herhangi bir IntelliSense listesi görmüyoruz. Bunun nedeni, "PowerPoint" in harici bir nesne olmasıdır. Ancak endişelenecek hiçbir şey değişkeni "Nesne" olarak bildirmez.
Kod:
Sub CreateObject_Example1 () Dim PPT As Object End Sub

Değişkeni "Object" olarak ilan ettiğimiz için, "Set" anahtar sözcüğünü kullanarak nesneye referans vermemiz gerekiyor. "Set" anahtar kelimesini girerek değişkenden bahsedin ve eşittir işareti koyun.
Kod:
Sub CreateObject_Example1 () PPT'yi Nesne Olarak Karart PPT = End Sub

Şimdi CreateObject işlevini açın.

Nesne Oluştur işlevinin "Sınıf" parametresi için "PowerPoint" harici nesnesine referans verdiğimizden , harici nesne adını çift tırnak içinde "PowerPoint.Application" olarak belirtin.
Kod:
Sub CreateObject_Example1 () PPT'yi Nesne Olarak Dim Ayarla PPT = CreateObject ("PowerPoint.Application") End Sub

Şimdi Nesne Oluştur işlevi PowerPoint uygulamasını başlatacaktır. Nesne başlatıldığında, değişken adını kullanarak onu görünür kılmamız gerekir.

Nesne Oluştur yöntemi veya geç bağlama yöntemiyle ilgili sorunlardan biri, zaman noktasında IntelliSense listesini göremememizdir. Yazdığınız koddan kesinlikle emin olmalısınız.
"PPT" değişkeni için "Görünür" özelliğini kullanın ve durumu "Doğru" olarak ayarlayın.
Kod:
Sub CreateObject_Example1 () PPT'yi Nesne Olarak Dim Ayarla PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub

PPT'ye slayt eklemek için, aşağıdaki satır VBA kodunu tanımlayın.
Kod:
Sub CreateObject_Example1 () PPT'yi Nesne Olarak Karart PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub
Şimdi kodu manuel olarak veya F5 tuşu ile çalıştırın ve "PowerPoint" uygulamasının açıldığını görün.

PowerPoint uygulaması "PPT" değişkeni kullanılarak etkinleştirildikten sonra, PowerPoint uygulamasına erişmeye başlayabiliriz.
Örnek 2
Şimdi VBA'daki CreateObject işlevini kullanarak bir Excel uygulamasının nasıl başlatılacağını göreceğiz. Bir kez daha, değişkeni "Nesne" olarak bildirin.
Kod:
Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub

The moment we declare the variable as an object, it causes late binding, and we need to use the “Set” keyword to set the reference for the required object.

Since we are referencing to excel worksheet from the application excel, enter “Excel. Sheet” in double-quotes.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") End Sub

Once the reference for the excel sheet is set, we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub

Now it will activate the excel worksheet.
Similarly, to initiate an excel workbook from other Microsoft products, we can use the below code.
Code:
Sub CreateObject_Example3 () ExlWb'yi Nesne Olarak Dim Ayarla ExlWb = CreateObject ("Excel.Application") ExlWb.Application.Visible = True End Sub

VBA'da CreateObject Hakkında Hatırlanması Gerekenler
- VBA'da, CreateObject işlevi nesnelere başvurmak için kullanılır.
- Nesne Oluştur işlevi, geç bağlanma sürecine neden olur.
- Nesne oluşturma işlevini kullanarak, VBA'nın IntelliSense listesine erişemiyoruz.