Bu dosya, bir UserForm nesnesinin Class Module ve Windows API bildirimleriyle modern görünümlü bir tarih seçici takvime dönüştürülmesini gösteren makro örneğidir. Takvim, Datepicker fonksiyonuyla çağrılır ve seçilen tarihi gg.aa.yyyy biçiminde geri verir. Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosya dış bağlantı içerir. Takvimin çalışması bu formüllere bağlı değildir.
Dosyanın içeriği
- Sheet2: A1:C6 aralığında altı satır bulunur; A sütunundaki hücreler IMAGE fonksiyonuyla resim çeker.
- uCalendar: Takvimin UserForm'udur. Gün, ay ve yıl çerçeveleri, ileri/geri ay düğmeleri, "bugün" etiketi ve kapatma düğmesi burada yer alır.
- clsDate: Class Module'dür. Gün, ay ve yıl etiketlerini kodla oluşturur; fare hareketi ve tıklama olaylarını yönetir.
- M_Calendar_API: user32, gdi32 ve kernel32 API bildirimlerini içeren modüldür.
Kullanılan formüller
Sheet2 sayfasındaki altı hücrede aşağıdaki yapı kullanılır; ikinci bağımsız değişken B sütunundaki değerden alınır:=IMAGE("<bağlantı>",B1,1)
Makrolar
- Datepicker: Parametre olarak bir TextBox, Range, CommandButton veya Label alır. Nesnede tarih varsa takvim o tarihle açılır, yoksa bugünün tarihiyle açılır. Form kapandığında seçilen tarih nesnenin değerine veya Caption özelliğine yazılır.
- lblNextMonth_Click ve lblPreviewMonth_Click: Ayı ileri veya geri alır, Aralık ve Ocak geçişlerinde yılı değiştirir.
- lblToday_Click: Takvimi bugünün ayına ve yılına getirir.
- lblMonthName_Click: Ay seçim çerçevesini açar.
- lblRightBar_MouseDown: Başlık çubuğu kaldırılmış formun fareyle taşınmasını sağlar.
- createDates (clsDate): Seçilen ay için 42 günlük ızgarayı üretir; hafta sonlarını kırmızı gösterir, ay dışı günleri pasif yapar, bugünün altını çizer.
- M_Calendar_API: Form kenarlığını kaldırma, saydamlık, yuvarlak köşe ve fare imleci ayarları için API çağrıları içerir. Kodda dosya silme veya dışarıya bağlantı işlemi görülmez.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Alt+F11 ile VBA düzenleyicisini açın ve uCalendar, clsDate ile M_Calendar_API bileşenlerini inceleyin.
- Takvimi çağırmak için bir düğme veya olay kodundan uCalendar.Datepicker fonksiyonunu kullanın; parametre olarak hedef hücreyi veya kontrolü verin.
- Takvimde günü tıklayarak tarihi seçin, ay ve yıl değişimini üst bölümden yapın.
- Kendi çalışmanızda kullanmak için üç bileşeni projenize aktarın.