Adından da anlaşılacağı gibi, nesneler oluşturmak için CreateObject işlevi kullanılır.
Ancak, new anahtar sözcüğünü kullanarak doğrudan bir nesne oluşturabiliyorsak neden CreateObject yöntemini veya işlevini kullanıyoruz?
Bu geçerli bir soru ve buna uygun bir cevabımız var.
CreateObject kullanılarak bir nesnenin oluşturulmasına denir. Geç bağlama. Geç bağlamada nesnelerin oluşturulması çalışma zamanında gerçekleşir. Eklenecek herhangi bir referansa ihtiyaç duymaz. Bu, VBA kodunu taşınabilir hale getirir.
Örneğin, diğer uygulamalarla ilgilenen bir uygulama oluşturursanız ve erken bağlama referanslar ekleyerek ve yeni anahtar kelime. Daha sonra bu kodu başka bir makineye aktarırsınız, o zaman referansları o makineye de eklemeniz gerekir. Ancak, başka uygulama nesneleri oluşturmak için CreateObject yöntemini kullandıysanız, kodu aktarmanız veya paylaşmanız durumunda başka makinelerdeki referansları eklemeniz gerekmez.
Bu yazıda bazı örnekler kullanarak CreateObject yöntemini öğreneceğiz.
CreateObject İşlevinin Sözdizimi:
nesne_adı= ayarla CreateObject(string olarak sınıfadı,[sunucuadı]) |
dize olarak sınıf adı: Gerekli bir değişkendir. Uygulamanın adını ve nesne türünü ifade eden bir dizedir. Oluşturulacak nesnenin uygulama adı ve sınıfı AppName.ObjecType içinde bildirilmelidir. Örneğin, Word Uygulamasının bir nesnesini istersem "Word.Application" yazardım. Daha sonra örneklerde detaylı olarak göreceğiz.
[sunucu adı]: İsteğe bağlı bir değişkendir. Nesnenin oluşturulacağı ağ sunucusunun adının bir dizesidir. Sunucuadı boş bir dize ("") ise, yerel makine kullanılır. Bu bölümde bunu kullanmayacağız.
Şimdi, CreateObject işlevinin temellerini bildiğimize göre, bunları bazı örneklerde kullanalım:
Örnek 1: Excel VBA Kullanarak Microsoft Word Uygulamasını Açın
Bu nedenle, erken bağlama kullanmak istersek, Araçlar-->Referanslar menüsünü kullanarak kelime uygulamalarına referanslar eklerdik.
Ve kodumuz şöyle görünecek.
Sub OpenWordApp() WordApp'i Yeni Word.Application Olarak Karartın WordDoc'u Belge Olarak Karartın wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Bu kodun avantajı, VBA'nın zekasından yardım almanız ve oluşturduğunuz nesnenin mevcut yöntemini ve özelliklerini size göstermesidir. Sisteminizde mükemmel bir şekilde çalışacaktır. Ancak bu kodu başka biriyle paylaşırsanız ve o kişi araçlardan microsoft word kitaplığına referansı eklememişse hata alır.
Bu hatayı önlemek için aşağıdaki kodu kullanın.
Sub OpenWordApp() WordApp'i Nesne Seti Olarak Karartın wordApp = CreateObject("Word.Application") WordDoc'u Nesne Olarak Karartın wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub
Yukarıdaki kod, herhangi bir makinede mükemmel şekilde çalışacaktır. Nesneyi oluşturmak için CreateObject yöntemini kullanarak geç bağlama yaptığımız için taşınabilir.
Başka bir örnek görelim:
Örnek 2: CreateObject İşlevini Kullanarak Çalışma Kitabı Nesnesi Oluşturun
VBA ile herhangi bir süre çalışıyorsanız, New anahtar sözcüğünü kullanarak çalışma kitapları oluşturmuş veya bunlara eklemiş olmalısınız. Bu örnekte, bunu CreateObject kullanarak yapacağız.
Sub addSheet() ' ' referansını tutmak için bir nesne değişkeni bildirin. Dim as Object geç bağlamaya neden olur. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ' Excel'i Application nesnesi aracılığıyla görünür yap. ExcelSheet.Application.Visible = True ' Sayfanın ilk hücresine biraz metin yerleştirin. ExcelSheet.Application.Cells(1, 1).Value = "Bu, sütun A, satır 1'dir" ' Sayfayı C:\test.xls dizinine kaydedin. ExcelSheet.SaveAs "C:\TEST.XLS" ' Application nesnesindeki Quit yöntemiyle Excel'i kapatın. ExcelSheet.Application.Quit ' Nesne değişkenini serbest bırakın. ExcelSheet'i Ayarla = Hiçbir Şey Bitmez Alt
Evet arkadaşlar, VBA'da CreateObject yöntemini böyle kullanıyorsunuz. Faydalarını ve eksikliklerini tartışalım.
Object oluşturmak için CreateObject'in Avantajları
CreateObject'in ana avantajı, kodunuzu taşınabilir hale getirmesidir (nesne oluşturma söz konusu olduğunda). Kodu, nesne programına referansı ekleyip eklemediği konusunda endişelenmeden herkesle paylaşabilirsiniz.
CreateObject'in Eksikliği
CreateObject yönteminin eksiklikleri şunlardır:
Nesne oluşturma için kullanacağınız Class'ın yapısını bilmeniz gerekir.
Nesneyi oluşturduktan sonra, VBA size yardımcı olacak herhangi bir intellisense sağlamadığından, nesnelerin yöntemleri ve özellikleri için tamamen belleğinize bağımlısınız.
Yukarıdaki eksikliklerin üstesinden gelebiliriz. Bir numaram var.
Ne zaman başkalarıyla paylaşılacak bir kod yazsam, nesne oluşturmak için ilk yöntemi kullanırım (Araçlardan referanslar ekleme). Bu, kodu daha hızlı yazmama yardımcı oluyor. VBA programını bitirip test ettikten sonra New yöntemini CreateObject Method ile değiştiriyorum. Bu, kodu taşınabilir hale getirir. Bu hileyi kullanabilirsiniz.
Evet arkadaşlar, VBA'da nesneler oluşturmak için CreateObject işlevini bu şekilde kullanabilirsiniz. Umarım her şeyi açıklayabilmişimdir. Bu makaleyle veya VBA ile ilgili diğer sorularınızla ilgili herhangi bir sorunuz varsa, aşağıdaki yorumlar bölümünde bana sorun.
Excel VBA UserForms'a Başlarken| Excel'de nasıl form oluşturulacağını, VBA araç kutusunun nasıl kullanılacağını, kullanıcı girdilerinin nasıl ele alınacağını ve son olarak kullanıcı girdilerinin nasıl saklanacağını anlatacağım. Bu konuları bir örnek ve adım adım kılavuz kullanarak inceleyeceğiz.
Excel'de VBA değişkenleri| VBA, Visual Basic for Applications anlamına gelir. Microsoft'tan bir programlama dilidir. MSExcel, MS-Word ve MS-Access gibi Microsoft Office uygulamalarıyla kullanılırken VBA değişkenleri belirli anahtar kelimelerdir.
Excel VBA Değişken Kapsamı| Tüm programlama dillerinde, tanımlanmış bir değişkene nereden erişilebileceğini tanımlayan değişken erişim belirteçlerine sahibiz. Excel VBA İstisna değildir. VBA'nın da kapsam belirleyicileri vardır.
ByRef ve ByVal Argümanları | Bir argüman farklı bir alt veya fonksiyona ByRef argümanı olarak iletildiğinde, gerçek değişkenin referansı gönderilir. Değişkenin kopyasında yapılan herhangi bir değişiklik orijinal argümana yansır.
Microsoft Excel'de VBA kullanarak onay istemleri olmadan sayfaları silin | VBA kullanarak sayfaları sildiğiniz için ne yaptığınızı biliyorsunuz. Excel'e bu uyarıyı göstermemesini ve lanet olası sayfayı silmesini söylemek istersiniz.
Microsoft Excel 2016'da VBA Kullanarak Yeni Çalışma Kitabı Ekleme ve Kaydetme| Bu kodda, önce bir çalışma kitabı nesnesine bir başvuru oluşturduk. Sonra onu yeni bir çalışma kitabı nesnesiyle başlattık. Bu yaklaşımın yararı, bu yeni çalışma kitabında işlemleri kolayca yapabilmenizdir. Kaydetme, kapatma, silme vb.
Excel VBA Durum Çubuğunda Bir Mesaj Görüntüle| Excel'deki durum çubuğu, kod izleyicisi olarak kullanılabilir. VBA kodunuz uzun olduğunda ve VBA'yı kullanarak birkaç görev yaptığınızda, ekranın titrediğini görmemek için genellikle ekran güncellemesini devre dışı bırakırsınız.
Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın| Bu kod yalnızca VBA uyarılarını devre dışı bırakmakla kalmaz, aynı zamanda kodun zaman verimliliğini de artırır. Nasıl olduğunu görelim.
Popüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.
Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.
Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli değerleri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.
Excel'de SUMIF İşlevi nasıl kullanılır? | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.