Vba'da çalışma kitaplarıyla çalışma kılavuzu

Excel’de çalışma kitabı, tüm Excel nesneleri arasında en önemlilerinden biridir ve VBA kodları yazarken çalışma kitaplarının nasıl kullanılacağını ve çalışma kitaplarına nasıl başvurulacağını anlamak da önemlidir.

Bu eğitimde bilmeniz gereken her şeyi keşfedeceğiz. Ancak anlamanız gereken ilk şey, VBA’da çalışma kitaplarıyla çalışırken yer alan nesnelerdir.

Bilinecek şeyler:

  • Bağlayıcı nesne
  • Bağlayıcı nesne

Bu iki nesne kulağa aynı geliyor ancak ikisi arasında temel bir fark var.

Bağlayıcı nesne

VBA’da Çalışma Kitapları nesnesi, Microsoft Excel’de açılan çalışma kitaplarının koleksiyonunu temsil eder. Aynı anda on dosya dolabınızın açık olduğunu hayal edin. Ve aralarındaki tek çalışma kitabına başvurmak istiyorsunuz. Bu durumda, bu çalışma kitabına adını kullanarak başvurmak için çalışma kitabı nesnesini kullanmanız gerekir.

vba workbooks object

Bağlayıcı nesne

VBA’da çalışma kitabı nesnesi, şu anda Microsoft Excel’de açık olan tüm çalışma kitapları arasında tek bir çalışma kitabını temsil eder. Bunu anlamanın en iyi yolu, koddaki belirli bir bağlayıcıya atıfta bulunmak için kullanmak istediğiniz bir değişkeni bağlayıcı olarak bildirmeyi düşünmektir.

represents one single workbook

Yararlı bağlantılar : Geliştirici sekmesi ekleyin | Visual Basic Düzenleyicisi | Makro çalıştırma | Kişisel Makrolar Çalışma Kitabı

VBA’daki bir çalışma kitabına bakın

VBA’da çalışma kitaplarıyla çalışmak için bilmeniz gereken ilk şey, bir makrodaki çalışma kitabına nasıl başvurulacağıdır. İşte mutlu olan şey: Bir çalışma kitabına başvurmanın birden fazla yolu var. Ve gelecekte her birini keşfedeceğiz.

1. İsme göre

Bir çalışma kitabına başvurmanın en kolay yolu, adını kullanmaktır. Diyelim ki Book1.xlsx çalışma kitabını aktifleştirmek istiyorsunuz, bu durumda kullanmanız gereken kod şu şekilde olmalı:

refer to a workbook in vba by name

Bir çalışma kitabına adıyla başvurmak oldukça basittir, adı belirtmeniz gerekir, hepsi bu. Ancak dikkat etmeniz gereken bir şey var: Çalışma kitabı kaydedilmemişse yalnızca adını kullanmanız gerekir. Kayıtlıysa, adı uzantıyla birlikte kullanmanız gerekir.

2. Numaraya göre

Bir çalışma kitabını açtığınızda, Excel bu çalışma kitabına bir dizin numarası atar ve bu numarayı bir çalışma kitabına başvurmak için kullanabilirsiniz. İlk açtığınız çalışma kitabında dizin numarası “1”, ikincisinde “2” vb. olacaktır.

refer to a workbook in vba b number

Bu yöntem size daha az gerçekçi gelebilir çünkü hangi çalışma kitabının hangi dizin numarasında olduğunu bilmek zordur. Ancak bu yöntemin kullanımının çok yararlı olduğu bir durum vardır ve bu, tüm açık çalışma kitaplarında bir döngüdür.

3. ThisWorkbook’a göre

Bu çalışma kitabı, kod yazdığınız çalışma kitabına başvurmanıza yardımcı olan bir özelliktir. Diyelim ki “Kitap1” içerisine kodu yazdınız ve çalışma kitabını kaydetmek için ThisWorkbook’u kullandınız. Artık çalışma kitabının adını değiştirseniz bile kodu değiştirmenize gerek kalmayacak.

refer to a workbook in vba by this workbook

Yukarıdaki kod, çalışma kitabında bu kodun yazıldığı sayfa sayısını sayar ve sonucu içeren bir mesaj kutusu görüntüler .

4. ActiveWorkbook’a göre

Etkin bir çalışma kitabına başvuruda bulunmak istiyorsanız “ActiveWorkbook” özelliğini kullanmanız gerekir. Bu özelliğin en iyi kullanımı, şu anda hangi çalışma kitabının etkinleştirildiğinden emin olduğunuz zamandır. Veya üzerinde çalışmak istediğiniz çalışma kitabını zaten etkinleştirmişsinizdir.

by active workbook

Yukarıdaki kod önce “Kitap1” çalışma kitabını etkinleştirir, ardından etkin çalışma kitabını kaydedip kapatmak için etkin çalışma kitabı özelliğini kullanır.

Tüm yöntemlere ve özelliklere erişin

VBA’da bir nesneye başvurduğunuzda, VBA o nesneyle sağlanan özelliklere ve yöntemlere erişmenizi sağlar. Benzer şekilde, çalışma kitabı nesnesi de özellikler ve yöntemlerle birlikte gelir. Erişmek için önce çalışma kitabını tanımlamanız, ardından bir nokta girmeniz gerekir.

define the workbook first and enter a dot

Nokta (.) yazdığınız anda, özelliklerin ve yöntemlerin listesi görüntülenir. Şimdi hangisinin özellik, hangisinin yöntem olduğunu nasıl belirleyeceğiniz konusunda bir sorunuz olmalı.

İşin püf noktası burada. Yakından bakarsanız, listedeki her ismin önünde hareket eden yeşil bir tuğla ve gri bir el görebilirsiniz. Yani tüm özelliklerin adından önce bu gri el bulunur ve yöntemlerin hareketli yeşil bir tuğlası vardır.

Örneğin, bir yöntemi çalışma kitabıyla kullanmak için

Bir çalışma kitabını kapatmak istediğinizi düşünün (bu bir yöntemdir), listeden “Kapat” yazmanız veya seçmeniz gerekir.

select close from a list

Bundan sonra, IntelliSense’in hangi bağımsız değişkenleri ayarlamanız gerektiğini bilmesi için başlangıç parantezlerini girmeniz gerekir.

enter starting parentheses

Close yöntemiyle üç argüman tanımlamanız gerekir ve görebileceğiniz gibi tüm bu argümanlar isteğe bağlıdır ve isterseniz bunları yok sayabilirsiniz. Ancak bazı yöntemlerin hiçbir argümanı yoktur (örneğin: active)

Örneğin, bir özelliği çalışma kitabıyla birlikte kullanmak için

“Kitap1” çalışma kitabının sayfalarını saymak istediğinizi düşünün. Bu durumda “E-Tablolar” özelliğini ve ardından bunun ek count özelliğini kullanmanız gerekir.

use the sheets property

Yukarıdaki kodda, söylediğim gibi, kitap1’i ayarlarsınız, ardından sayfa özelliği tüm sayfaları ifade eder, sonra da bunları saymak için count özelliği. Ve bu kodu çalıştırdığınızda size sonucu içeren bir mesaj kutusu gösterir.

Çalışma kitabında “WITH” ifadesini kullanma

VBA’da, verimli bir şekilde makro yazarken çalışma kitabıyla çalışmanıza yardımcı olabilecek bir “With” ifadesi vardır. Aynı çalışma kitabına, yani ActiveWorkbook’a sahip üç farklı kod satırınızın olduğu aşağıdaki örneği görelim.

using with statement with workbook

“WITH” ifadesi ile aktif çalışma kitabına yalnızca bir kez başvurabilir ve kodda bulunan tüm özellik ve yöntemleri kullanabilirsiniz.

  • Öncelikle “With ActiveWorkbook” başlangıç ifadesiyle başlamanız ve ifadeyi “End With” ile bitirmeniz gerekiyor.
start with the starting statement
  • Daha sonra yukarıdaki örnekte yer alan kodu bu ifadenin arasına yazmanız gerekmektedir.
write the code between the statement

Yukarıdaki kodda görebileceğiniz gibi, With ifadesini kullanarak ActiveWorkbook’unkine değindik ve ardından tüm özellik ve yöntemlerin kullanılması gerekiyor.

 Sub vba_activeworkbook_with_statement() With ActiveWorkbook .Sheets.Add Count:=5 .Charts.Visible = False .SaveAs ("C:UsersDellDesktopmyFolderbook2.xlsx") End With End Sub

Her şeyi anlamanız için size basit ve somut bir örnek vereyim. Benden su şişesini almak için 215 numaralı odaya gitmemi istediğinizi ve geri döndüğümde beni kalem almak için tekrar 215 numaralı odaya gönderdiğinizi, sonra da dizüstü bilgisayar almam için tekrar gönderdiğinizi hayal edin. Şimdi olay şu: bana almamı söylediğin her şey 215 numaralı odada. Beni 215 numaralı odaya gönderip üç şeyi aynı anda almamı söylesen daha iyi olur.

Okuyun: İle – Şununla bitirin

Bir değişkeni çalışma kitabı olarak bildirme

Bazen bir değişkeni kodda daha fazla kullanmak için bağlayıcı olarak bildirmeniz gerekir. Senden özel bir şey gerektirmiyor.

declare variable as workbook
  1. DIM (beyan) ifadesini kullanın.
  2. Değişken adını yazın.
  3. Değişken türünü Çalışma Kitabı olarak ayarlayın.

Hatalarla baş etmek

VBA’da bir veya daha fazla çalışma kitabı nesnesiyle çalışırken hataları da işlemeniz gerekebilir. “Çalışma zamanı hatası 9: Dizin aralık dışı” hatasına bir örnek verelim. Bu hata çeşitli nedenlerle ortaya çıkabilir.

  • Başvurmaya çalıştığınız çalışma kitabı açık değil.
  • Belki adını yanlış yazdınız.
  • Bahsettiğiniz çalışma kitabı henüz kaydedilmedi ve adı taşıyan uzantıyı kullanıyorsunuz.
  • Bir çalışma kitabına başvurmak için dizin numarasını kullanıyorsanız ve kullandığınız sayı, açık çalışma kitaplarının toplam sayısından büyükse.

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir