EXCEL VBA'DA GETOBJECT FONKSİYONU

 

VBA GetObject, Excel dosyasından veya nesne değişkenine atanabilen harici nesne referanslarından VBA ActiveX nesnelerine erişmemizi sağlayan ve işlemlerin düzgün yapılmasını sağlayan bir fonksiyondur.


MS Word, MS Outlook, MS PowerPoint ve Internet Explorer gibi diğer Microsoft Office uygulamaları arasında bağlantı kurmaya çalıştığımızda, Nesne Bağlama ve Gömme (OLE) ve Bileşik Nesne Modeli (COM) teknolojisini kullanacak olan VBA GetObject fonksiyonunu kullanmalıyız.

Örneğin, sistemimizde “Satış Raporu.xlsx.” adında açık bir çalışma kitabımız varsa ve buna erişmek istiyorsak, açık çalışma kitabına bağlantı kurmak için VBA GetObject fonksiyonunu kullanabiliriz.


Dim My_Wb as Object

Set My_Wb = GetObject(“Sales Report.xlsx”)


Çalışma kitabı referansı My_Wb değişkenine atandıktan sonra, çalışma kitabına erişmek için bunu kullanabiliriz.


ÖNEMLİ NOKTALAR

  • VBA GetObject fonksiyonu, diğer uygulamalar tarafından oluşturulan nesnelere başvurmamıza yardımcı olur. Böylece, VBA kodu harici bir nesnenin özelliklerine ve yöntemlerine erişmek için kullanılabilir.
  • VBA GetObject işlevi, çalışma kitabımızda kayıtlı olan Excel çalışma kitabının referansını almamızı sağlar. Kaydedilen konumdan bir MS Word belgesi açmamızı ve bu belgeyi etkinleştirmemizi ve üzerinde çalışmamızı sağlar.
  • VBA GetObject fonksiyonunu kullanarak nesne referanslarını alabiliriz, ancak bir sınıfın referansına erişmek için kullanılamaz.

Sözdizimi – Excel VBA GETOBJECT Fonksiyonu

VBA GetObject fonksiyonunun sözdizimi aşağıdaki gibidir.

GetObject( [PathName], [Class])

Burada her iki argüman da isteğe bağlıdır.

  • [PathName]: Erişilecek dosyaya veya nesneye giden tam yol. Eğer yol belirtilmemişse, zaten açılmış olan nesne döndürülür. Eğer yol adı belirtilmemişse, ikinci argüman zorunlu hale gelir.

Örneğin bilgisayarınızdaki klasörlerden birinde saklanan Excel dosyasına erişmek istiyorsanız, aşağıdaki gibi tam yolu verebiliriz.

C:\Kullanıcılar\jeevanay\OneDrive – xlmojo\Masaüstü\Kişisel\Satış Raporu.xlsx

  • [Sınıf]: Erişmemiz gereken uygulama bu argümanda çift tırnak içinde verilecektir. Örneğin, bir Excel uygulaması oluşturmak için sınıfı aşağıdaki gibi sağlayabiliriz.

“Excel.Application”


Excel'de VBA GETOBJECT Fonksiyonu Nasıl Kullanılır?

Açılan Excel çalışma kitabıyla çalışmak için VBA GETOBJECT işlevini kullanmanın pratik bir örneğine bakalım. Örneğin, bir bilgisayar klasöründe şu Excel çalışma kitabımız var.

Excel'de VBA GETOBJECT Fonksiyonu Nasıl Kullanılır - Temel Örnek - 1

Bu çalışma kitabıyla çalışmak için VBA GetObject fonksiyonunu kullanacağız. İlk önce bu çalışma kitabını açalım.

Temel Örnek - 2

  1. Makroya isim vererek bir alt prosedür oluşturun.


    Temel Örnek - Adım 1

  2. Nesne veri türünde bir değişken tanımlayın.


    Temel Örnek - Adım 2

  3. Bu değişken için, VBA GETOBJECT fonksiyonunu kullanarak çalışma kitabı referansını atayalım.


    Excel'de VBA GETOBJECT Fonksiyonu Nasıl Kullanılır - Temel Örnek - Adım 3

  4. VBA GetObject fonksiyonunun yol adı argümanı için, depolandığı yere tam dosya yolu adresini kopyalayın.


    Temel Örnek - Adım 4

  5. Klasör yolu girildikten sonra açılan çalışma kitabının adının sonuna ters eğik çizgi koyun.


    Temel Örnek - Adım 5

  6. Şimdi, “Wb” değişkeni “Text.xlsx” çalışma kitabının referansını tutar. Bu değişken adını kullanabilir ve Çalışma Kitabı nesnesinin özelliklerine ve yöntemlerine erişebiliriz.


    Temel Örnek - Adım 6a

    Ancak, bir nokta girer girmez, IntelliSense listesi çalışma kitabı nesnesiyle ilişkili tüm özellikleri ve yöntemleri göstermelidir. Ancak veri türü olarak “Nesne” kullandığımızda hiçbir şey görmeyiz.

    Bu nedenle, IntelliSense'in çalışma kitabı nesnesinin tüm özelliklerini ve yöntemlerini göstermesi için özellikle “Çalışma Kitabı” nesnesini kullanmalıyız. Veri türü adını “Nesne”den “Çalışma Kitabı”na ​​değiştirin.



    Şimdi, “Wb” değişkenini kullanın ve bir nokta girin. Workbook nesnesinin tüm özelliklerini ve yöntemlerini göstermelidir.

  7. Etkinleştirme yöntemini seçin.


    Excel'de VBA GETOBJECT Fonksiyonu Nasıl Kullanılır - Temel Örnek - Adım 7a

    Şimdi, VBA kodunu çalıştıralım . “Test.xlsx” çalışma kitabını etkinleştirmeli.



    “Test.xlsx” çalışma kitabını etkinleştirdi.

Excel VBA GETOBJECT Fonksiyonunun Örnekleri

Daha iyi anlamanız için VBA GetObject fonksiyonu örneklerini gösterelim.

Örnek 1 – Açılan Çalışma Kitabı Referansını Alın

Otomasyonun bir parçası olarak sıklıkla birden fazla çalışma kitabıyla çalışırız. Bu gibi senaryolarda çalışma kitabının referansını değişkenlerden birine almamız gerekir.

Excel'de VBA GetObject - Örnek 1 - 1

Sub VBA_GetObject_Ex1()
'Çalışma kitabı referansını atamak için bir değişken tanımlayın
Dim MyWorkbook As Workbook
'Konum klasörünü depolamak için bir değişken tanımlayın
Dim Location As String
'Konum klasörü yolunu değişkene atayın
'Sonunda çalışma kitabı adını daha sonra atamak için ters eğik çizgi () atadık
Location = “C:\Users\jeevanay\Desktop\Charticulator\New folder\”
'Çalışma kitabı referansını MyWorkbook değişkenine atayın
Set MyWorkbook = GetObject(Location & “Sales Report.xlsx”)
'VBA GetObject işlevinin değişkenini kullanın
'Çalışma kitabını etkinleştirin
MyWorkbook.Activate
'Başvurulan çalışma kitabına bir değer ekleyin
MyWorkbook.Worksheets(“Sheet1”).Range(“A1”).Value = “Merhaba!!!”
End Sub

VBA GetObject fonksiyonu, açılan çalışma kitabının referansını almamıza yardımcı olur. Aşağıdaki kod, “MyWorkbook” değişkeninin çalışma kitabı referansını alacaktır.

Not: Bu kodu çalıştırmak için öncelikle “Satış Raporu.xlsx”  adlı çalışma kitabını açmalıyız  . Kodu çalıştırdığımızda, başvurulan çalışma kitabındaki “Merhaba !!!” değeri çalışma sayfasındaki A1 hücresine eklenecektir.

Excel'de VBA GetObject - Örnek 1 - 2

Örnek 2 – VBA GetObject Fonksiyonu ile Microsoft Word Belgesi Oluşturma

Excel dosyasından çalışma belgesi nesnesini VBA GetObject işlevini kullanarak başlatabiliriz. Örneğin, bilgisayar klasörümüzde kayıtlı bir Word belgemiz, “Test Document.docx” olduğunu varsayalım. VBA GetObject işlevini kullanarak bu Word belgesini açmayı ve etkinleştirmeyi deneyelim.

Referans olması açısından kod aşağıdadır.

Excel'de VBA GetObject - Örnek 2 - 1

Sub VBA_GetObject_Ex2()
'Çalışma kitabı referansını atamak için bir değişken tanımlayın
Dim MyWordDoc As Object
'Çalışma uygulamasını Excel'den başlatın
Set MyWordDoc = GetObject(, “Word.Application”)
'Verilen konum klasöründeki Word belgesini açın
MyWordDoc.Documents.Open (“C:\Users\jeevanay\Desktop\Charticulator\New folder\Test Document.docx”)
'Word belgesi açıldığında, Word belgesini etkinleştirelim
MyWordDoc.Activate
End Sub

Kodu çalıştıralım. Verilen klasörden word belgesini aktifleştirecektir.

Excel'de VBA GetObject - Örnek 2 - 2

Yukarıdaki görselde görüldüğü üzere “Test Document.docx” olarak kaydedilen word belgesi, VBA GetObject fonksiyonunu kullanan verilen kod ile açılıp aktif hale getiriliyor.

Dikkat Edilmesi Gereken Önemli Noktalar

  • VBA GetObject fonksiyonu, belirtilen klasör yolu doğru değilse aşağıdaki hatayı döndürür: Çalışma zamanı hatası '5174' Üzgünüz, dosyanızı bulamadık. Taşındı mı, yeniden adlandırıldı mı veya silindi mi?
  • Excel çalışma kitabını açmaz ve değişken aracılığıyla erişmeye çalışırsak VBA GetObject fonksiyonu aşağıdaki hatayı döndürür. Çalışma Zamanı hatası '432' Otomasyon işlemi sırasında dosya adı veya sınıf adı bulunamadı.
  • VBA GetObject fonksiyonu nesnelere atıfta bulunduğundan, değişkenlere nesne referansları atarken “Set” anahtar sözcüğünü kullanırız.
  • VBA GetObject fonksiyonunun ikinci argümanı, ilk argümanı göz ardı ettiğimizde zorunlu hale gelir.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...