Bu dosya, bir UserForm üzerindeki tüm butonlara tek bir sınıf modülü (ClassModule) ile ortak olay tanımlamayı gösterir. Fare imleci bir butonun üzerine geldiğinde o buton kırmızı renge boyanır, diğer butonlar form rengine döner. Her buton için ayrı olay kodu yazmak yerine tek bir sınıfın kullanıldığı bir VBA örneğidir.
Dosyanın içeriği
- Sayfa1: R20 hücresinde "VBA ClassModül ile Buton Fontu Değiştirme" başlığı bulunur. Formül içermez.
- UserForm1: Butonların yer aldığı form. Form açılırken butonlar sınıfa bağlanır.
- Module1: Formu açan ShowUserform1 prosedürünü içerir.
- CommandButtonClass: Buton olaylarını yakalayan sınıf modülüdür.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodlarda dosya silme ya da dışarıya bağlantı gibi zararlı bir işlem yoktur.- ShowUserform1: UserForm1 formunu görüntüler. Çalıştırılacak giriş makrosu budur.
- UserForm_Initialize: Form açıldığında formdaki tüm denetimleri dolaşır, türü CommandButton olanları sayar ve her birini Butonlar dizisindeki sınıf nesnesine atar. Dizi buton sayısına göre otomatik büyütülür.
- ButonGrubu_MouseMove: Fare bir butonun üzerinde hareket ettiğinde önce rengi kırmızı olan butonları form rengine döndürür, ardından fare altındaki butonu kırmızı yapar ve form başlığına butonun Caption değerini yazar.
- ButonGrubu_Click: Butona tıklandığında butonun adını içeren "Basıldı" mesajını gösterir.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Alt+F8 ile ShowUserform1 makrosunu çalıştırın.
- Fareyi formdaki butonların üzerinde gezdirin; üzerinde durulan buton kırmızı olur ve form başlığında adı görünür.
- Bir butona tıklayarak mesaj kutusunu görün.
- Forma yeni buton eklemek için VBA düzenleyicisinde UserForm1 üzerine CommandButton yerleştirmeniz yeterlidir; form açılırken yeni buton da otomatik olarak sınıfa bağlanır.