Bu dosya, VBA'daki standart MsgBox işlevini bir UserForm üzerinden yeniden oluşturan MyMsgBox fonksiyonunu içerir. Mesaj metni, düğme düzeni, simge ve başlık hücrelerden girilerek hem özel hem standart mesaj kutusu denenebilir. Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- exceldestek.com | exceldepo.com sayfası (A1:C35): Test için giriş alanları ve kod tabloları bulunur. B1 hücresine mesaj metni, B2 hücresine düğme/simge kodu, B3 hücresine başlık girilir; kullanıcının tıkladığı düğmenin sonucu B4 hücresine yazılır.
- Sayfada "CODES FOR ICONS" başlığı altında simge kodları (16, 32, 48, 64) ve "CODES FOR BUTTONS" başlığı altında düğme kodları (0, 1, 2, 3 ve devamı) listelenir.
- MyMsgBoxForm: Mesaj kutusunun görünümünü oluşturan UserForm.
- MyMsgBoxMod: Fonksiyonu ve test makrolarını barındıran modül.
Makrolar
- MyMsgBox: Mesaj, düğme ve başlık değerlerini forma aktarır, formu Excel penceresinin ortasında açar ve tıklanan düğmenin değerini döndürür. HelpFile ve Context bağımsız değişkenleri desteklenmez.
- UserForm_Initialize: Düğme değerini ikili sayıya çevirerek (DECTOBIN) simgeyi (Critical, Question, Exclamation, Information) ve düğme grubunu belirler. Başlık boşsa Excel uygulama adı kullanılır, form genişliği metne ve düğmelere göre ayarlanır.
- Button1_Click, Button2_Click, Button3_Click: Tıklanan düğmenin sonucunu kaydeder.
- TestMyMsgBox: B1:B3 hücrelerindeki değerlerle özel mesaj kutusunu açar, sonucu B4 hücresine yazar.
- TestMsgBox: Aynı işlemi standart MsgBox ile yapar; karşılaştırma sağlar.
- MyMsgBoxTest: Soru simgeli, Yes/No düğmeli hazır bir örnek gösterir.
- Kod dosya silme veya dış bağlantı işlemi içermez; yalnızca ekran ölçüsünü almak için user32 kütüphanesinden GetSystemMetrics çağrılır.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- B1 hücresine mesaj metnini, B3 hücresine başlığı yazın.
- B2 hücresine düğme koduyla simge kodunu toplayarak girin (örneğin 32 + 4 = 36).
- Alt+F8 ile TestMyMsgBox makrosunu çalıştırın; standart karşılığı için TestMsgBox makrosunu çalıştırın.
- Seçtiğiniz düğmenin sonucu B4 hücresinde görünür.
- Kendi projenizde kullanmak için MyMsgBoxForm ve MyMsgBoxMod bileşenlerini projenize aktarıp MyMsgBox fonksiyonunu çağırın.