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.
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.
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ı:
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.
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.
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.
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.
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.
Bundan sonra, IntelliSense’in hangi bağımsız değişkenleri ayarlamanız gerektiğini bilmesi için başlangıç parantezlerini girmeniz gerekir.
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.
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.
“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.
- Daha sonra yukarıdaki örnekte yer alan kodu bu ifadenin arasına yazmanız gerekmektedir.
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.
- DIM (beyan) ifadesini kullanın.
- Değişken adını yazın.
- 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.