Thisworkbook vba değişkeni excel'de nasıl kullanılır?
VBA’da, kod yazdığınız çalışma kitabına başvurmak için ThisWorkbook özelliğini kullanabilirsiniz. Bunu kullandığınızda mevcut çalışma kitabının tüm özelliklerine ve yöntemlerine erişebilirsiniz. Basitçe söylemek gerekirse, geçerli çalışma kitabındaki tüm görevleri adı kullanmadan çalıştırabilirsiniz.
Geçerli çalışma kitabındaki sayfaları saymak istediğinizi varsayalım. Yazmanız gereken kod aşağıdaki gibi olacaktır.
Sub vba_thisworkbook() MsgBox ThisWorkbook.Sheets.Count End Sub
Bu kodu çalıştırdığınızda, geçerli çalışma kitabınızdaki sayfa sayısını gösteren bir mesaj kutusu görüntülenir.
Dediğim gibi ThisWorkbook’u kullandığınızda mevcut çalışma kitabının özelliklerine ve yöntemine erişmenizi sağlar. Listenin tamamını görmek için nokta (.) girdiğinizde tüm bunları görebilirsiniz.
Yararlı bağlantılar: Makro çalıştırma – Makro kaydedici – Visual Basic Düzenleyici – Kişisel Makrolar El Kitabı
ThisWorkbook’u bir değişkenle kullanma
Daha sonra, ThisWorkbook özelliğini kullanacak bir değişkeni bildirmek için size gerçek bir kod örneği göstereceğim. Geçerli çalışma kitabında çeşitli etkinlikler gerçekleştirmek istediğinizi varsayalım.
Sub vba_thisworkbook() Dim myWB As Workbook Set myWB = ThisWorkbook With myWB .Activate .Sheets(1).Activate .Range("A1") = Now .Save .Close End With End Sub
Bu kodun ilk bölümünde bir değişkeniniz var, ardından ona “ThisWorkbook” özelliğini verin. Ve ikinci bölümde mevcut değişkenle birden fazla aktivite gerçekleştirmek için İLE BEYANINIz var.
ActiveWorkBook ve Bu Çalışma Kitabı Karşılaştırması
Bunu size basit bir benzetmeyle açıklayayım, o yüzden önümüzdeki 2 dakika boyunca bana sabredin.
Aynı anda açık olan iki çalışma kitabınız var (Kitap1 ve Kitap2). Kitap1’e kod yazıyorsunuz ama kitap2 bu noktada aktif. Yani ActiveWorkbook’a referans veren bu kodu çalıştırdığınızda, bu aktiviteyi Book2’de gerçekleştirecektir .
Ancak ThisWorkbook’u kullandığınızda, VBA her zaman kodun yazıldığı çalışma kitabına başvurur.
Olay şu: ThisWorkbook’u kullanmak her zaman daha iyidir çünkü hata olasılığını ortadan kaldırır.