Bu dosya, bir UserForm üzerindeki TextBox nesnesine ##.##.#### biçiminde tarih maskesi uygulayan VBA örneğidir. Kullanıcı kutuya yazarken imleç noktalı alanların üzerinden otomatik atlar; tarih belirlenen biçime uygun girilir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sayfa1: Üzerinde veri bulunmayan çalışma sayfasıdır; formu açan makro bu dosyadan çalıştırılır.
- Module1: Formu açan formu_ac makrosunu içerir.
- UserForm1: Maske uygulanan TextBox1 nesnesini ve üç olay kodunu barındırır.
Makrolar
- formu_ac: UserForm1 formunu ekranda gösterir. Makro menüsünden veya bir düğmeye atanarak çalıştırılır.
- UserForm_Initialize: Form açılırken çalışır. MaxLength değerini 10 yapar, kutuya "##.##.####" metnini yazar ve ilk karakteri seçili hale getirir. EnterFieldBehavior ayarı sayesinde kutuya tekrar girildiğinde son seçim korunur.
- TextBox1_Change: Her değişiklikten sonra bir karakter seçili tutar. Seçilen karakter nokta ise imleci bir sonraki karaktere taşır; böylece kullanıcı noktaların üzerine yazmaz.
- TextBox1_KeyDown: Tuş hareketlerini yönetir. Sol ok ve Backspace imleci bir karakter geriye, sağ ok bir karakter ileriye taşır. Delete tuşu, seçili karakter nokta değilse onu "#" ile değiştirir. Home tuşu imleci başa, End tuşu son karaktere götürür. Hata oluşursa seçim başa döner.
- Kodda dosya silme veya dış bağlantı gibi zararlı bir işlem yoktur.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- ALT+F8 ile makro listesini açıp formu_ac makrosunu çalıştırın.
- Açılan formdaki kutuya gün, ay ve yıl rakamlarını sırayla yazın; noktalar otomatik atlanır.
- Hatalı yazılan rakamı düzeltmek için ok tuşlarını, Backspace veya Delete tuşunu kullanın.
- Maskeyi kendi projenize taşımak için UserForm içindeki üç olay kodunu kopyalayıp kutu adını (TextBox1) kendi nesnenizle değiştirin.