VBA Modülü Nedir?
İngilizce: VBA Module
Yayın: · Son güncelleme:
VBA Modülü Nedir? Kısaca
VBA modülü, Excel çalışma kitabında VBA kodlarının saklandığı kapsayıcıdır. Standart modül, sayfa ve çalışma kitabı modülleri, sınıf modülü ve UserForm modülü gibi türleri vardır.

VBA modülü nedir?
VBA modülü, çalışma kitabının içinde VBA kodlarının yazıldığı ayrı bir bölümdür. Bir klasördeki belgeler gibi düşünebilirsiniz: her modül bir ya da daha fazla makro içerir. Modüller VBA düzenleyicisindeki proje gezgininde listelenir.
Makro kaydedici kodu kendiliğinden bir standart modüle yazar. Elle kod yazacaksanız düzenleyicinin Insert menüsünden yeni bir modül eklersiniz.
Modül türleri
| Tür | Ne için kullanılır? |
|---|---|
| Standart modül | Genel makrolar ve özel fonksiyonlar |
| Sayfa modülü | O sayfada hücre değişince çalışan olay kodları |
| ThisWorkbook | Dosya açılırken, kaydedilirken çalışan olay kodları |
| Sınıf modülü | Kendi nesne türlerinizi tanımlamak |
| UserForm modülü | Özel formun düğme ve kutularına ait kodlar |
Örnek
Bir stok tablosunda adet sıfırın altına düştüğünde uyarı vermek istediğinizi varsayalım. Bu kod, Stok sayfasının modülüne Worksheet_Change olayı olarak yazılır ve yalnız o sayfada çalışır. Stok raporunu PDF olarak kaydeden genel makro ise standart modüle konur, böylece bir düğmeden ya da başka bir makrodan çağrılabilir.
Excel'de kendi fonksiyonunuzu yazmak istiyorsanız kod mutlaka standart modülde olmalıdır. Sayfa modülüne yazılan bir fonksiyon hücrede formül olarak kullanılamaz.
Nelere dikkat etmeli?
Modüllere anlamlı adlar vermek, büyüyen projelerde kodu bulmayı kolaylaştırır. Module1, Module2 yerine "RaporMakrolari" gibi adlar kullanın. Modüller dışa aktarılıp .bas dosyası olarak başka çalışma kitaplarına taşınabilir; bu yöntem kodu yedeklemek için de işe yarar.
Sıkça Sorulan Sorular
Yeni bir VBA modülü nasıl eklenir?
VBA düzenleyicisinde Insert menüsünden Module komutunu seçin. Proje gezgininde Modules klasörü altında Module1 gibi bir adla yeni modül belirir.
Kodu sayfa modülüne mi standart modüle mi yazmalıyım?
Her yerden çağrılacak genel makroları standart modüle yazın. Yalnız belirli bir sayfadaki değişikliğe tepki verecek olay kodları ise o sayfanın modülüne yazılır.