Bu dosya, bir UserForm üzerindeki tüm TextBox denetimlerine her biri için ayrı kod yazmadan aynı olay kodunu uygulamayı gösteren örnek bir şablondur. Kural bir kez sınıf modülünde tanımlanır ve formdaki bütün TextBox'lar için geçerli olur.
Dosyanın içeriği
- Sayfa1: Boş bir sayfadır; üzerinde formu açan bir CommandButton bulunur. Hücrelerde veri ya da formül yoktur.
- UserForm1: TextBox denetimlerini barındıran formdur. Form açılırken içindeki tüm TextBox'lar bulunup sınıf modülüne bağlanır.
- tumtextler: Sınıf modülüdür. TextGroup adlı değişken WithEvents ile tanımlanmıştır ve KeyPress olayını karşılar.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme ya da dışarıya bağlantı gibi zararlı bir işlem yoktur.- Workbook_Open: Çalışma kitabı açıldığında UserForm1'i otomatik olarak gösterir.
- CommandButton1_Click: Sayfa1'deki düğmeye basıldığında UserForm1'i yeniden açar.
- UserForm_Initialize: Formdaki tüm denetimleri döngüyle dolaşır, türü TextBox olanları dinamik bir dizi olan excelvba içine ekler ve her birini sınıfın TextGroup değişkenine atar. Böylece formdaki TextBox sayısı artsa da kod değişmez.
- TextGroup_KeyPress: Tuş basımını denetler. Rakamlar (0-9) ve virgül kabul edilir; diğer tüm karakterler engellenir. Ayrıca virgül (ASCII 44) girildiğinde nokta (ASCII 46) karakterine çevrilir.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin; UserForm1 kendiliğinden görüntülenir.
- Formdaki herhangi bir TextBox'a yazı yazmayı deneyin; yalnızca rakamlar ve virgül girişi kabul edilir, virgül noktaya dönüşür.
- Formu kapattıktan sonra yeniden açmak için Sayfa1'deki düğmeyi kullanın.
- Kendi formunuza uygulamak için tumtextler sınıf modülünü ve UserForm_Initialize kodunu projenize aktarın; KeyPress kuralını ihtiyacınıza göre Select Case bölümünde değiştirin.