Bu dosya, bir UserForm üzerindeki butonlardan hangisine tıklandığını tek bir ClassModule ile yakalamayı ve buton adını ekranda göstermeyi örneklemektedir. Her buton için ayrı Click olayı yazmak yerine, butonların tamamı tek bir sınıf üzerinden izlenir.
Dosyanın içeriği
- Sayfa1: R20 hücresinde "Tıklanan Butonun ismini ClassModul ile Bulma" başlığı yer alır. Sayfada formül bulunmaz.
- UserForm1: Üzerinde butonların bulunduğu form. OKButton adlı düğme formu kapatır.
- Class1: Buton olaylarını yakalayan sınıf modülü.
- Module1: Formu açan ve butonları sınıfa bağlayan standart modül.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.- ShowDialog (Module1): UserForm1 üzerindeki tüm kontrolleri tarar. Türü CommandButton olan ve adı OKButton olmayan her buton için Butonlar dizisine Class1 türünde yeni bir eleman ekler ve butonu bu elemanın ButonGrubu özelliğine atar. Ardından formu gösterir.
- ButonGrubu_Click (Class1): WithEvents ile tanımlı butonlardan biri tıklandığında çalışır ve "Basılan" ifadesinin yanında tıklanan butonun adını MsgBox ile gösterir.
- OKButton_Click (UserForm1): Unload Me ile formu kapatır.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Alt+F8 ile makro listesini açın ve ShowDialog makrosunu çalıştırın.
- Açılan formda herhangi bir butona tıklayın; mesaj kutusunda butonun adı görüntülenir.
- Formu kapatmak için OKButton düğmesini kullanın.
- Forma yeni buton eklenirse, ShowDialog çalıştığında bu buton da otomatik olarak sınıfa bağlanır; ek kod yazmak gerekmez.