Bu dosya, belirli bir süre boyunca kapatılamayan bir mesaj kutusu örneğidir. Kutu, standart MsgBox yerine bir UserForm ile hazırlanmıştır. Geri sayım sürerken kapatma düğmesi pasif kalır, pencerenin sağ üstündeki kapatma simgesi de kaldırılır. Süre dolunca kutu kapatılabilir.
Dosyanın içeriği
- exceldestek.com | exceldepo.com sayfası: A1:F11 aralığında yer alan tek çalışma sayfasıdır. Sayfada formül yoktur; mesaj kutusunu açan Rectangle1 şekli burada bulunur.
- Module2: Şekle tıklandığında çalışan Rectangle1_Tıkla yordamını içerir.
- UserForm1: Geri sayım etiketini, tamam düğmesini ve kapatmayı engelleyen kodu barındırır.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme ya da dış bağlantı gibi zararlı bir işlem yoktur; yalnızca Windows'un user32 kütüphanesindeki pencere işlevleri kullanılır.- Rectangle1_Tıkla: UserForm1 etiketinin başına "Konu: " metnini ekler ve formu gösterir. Sayfadaki şekle tıklanınca çalışır.
- UserForm_Activate: Form açılınca pencere başlığındaki sistem menüsünü (kapatma simgesi) kaldırır. Tamam düğmesini pasif yapar ve kalan süreyi "Süre dolmadan kapatamazsınız" metniyle saniye saniye gösterir. Süre bitince "Şimdi kapatabilirsiniz" yazılır ve düğme etkinleşir.
- UserForm_QueryClose: Süre dolmadan formu kapatma girişimini (örneğin Alt+F4) iptal eder ve uyarı mesajı gösterir.
- btnOK_Click: Formu kapatır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Sayfadaki şekle tıklayın; mesaj kutusu geri sayımla birlikte açılır.
- Süre dolana kadar bekleyin; ardından tamam düğmesine basarak kutuyu kapatın.
- Süreyi değiştirmek için Alt+F11 ile VBA düzenleyicisini açın, UserForm1 kodundaki Interval değerini saniye cinsinden değiştirin.
- Kendi çalışma dosyanızda kullanmak için UserForm1 ve Module2 öğelerini projenize aktarın; mesaj metnini formdaki etiketlerden düzenleyin.