Bu dosya, standart MsgBox penceresindeki düğme yazılarını (Yes, No, Cancel gibi) kendi metinlerinizle değiştirmeyi ve kullanıcının hangi düğmeye bastığını metin olarak yakalamayı gösterir. Özel pencere MsgBoxC adlı fonksiyonla açılır; fonksiyon, basılan düğmenin yazısını döndürür ve sonuç Select Case ile işlenir.
Dosyanın içeriği
- exceldestek.com | exceldepo.com sayfası: A1:Q30 aralığında formülsüz tanıtım sayfasıdır. Makro örnekleri bu sayfadaki düğmeyle değil, VBA editöründen çalıştırılır.
- basMsgCustom modülü: Özel mesaj kutusunu oluşturan kod burada yer alır. MsgBoxC, MessageBoxH, MsgBoxHookProc ve MsgBoxError yordamlarını içerir. Pencere açılmadan önce Windows API (user32, kernel32) ile yakalanır; başlık, mesaj metni ve düğme yazıları değiştirilir.
- basTests modülü: Dört hazır örnek içerir.
- X modülü: XcelFiles_Click yordamı VBA editörü penceresini görünür yapar.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme ya da dışarıya bağlantı işlemi yoktur; yalnızca pencere işlemleri için Windows API işlevleri kullanılır.- Test_Custom_MsgBoxI: Öğle molasının süresi sorulur; düğmeler "No Break", "1/2 hr" ve "Don't Know" olarak yazılır. Seçime göre y değişkenine 0, 0.5 veya 1 atanır ve sonuç mesajla gösterilir.
- Test_Custom_MsgBoxII: İki düğmeli (Test1, Test2) örnektir; vbYesNo ile durdurma simgesi kullanılır.
- Test_Custom_MsgBoxIII: Male, Female ve Other düğmeli üç seçenekli örnektir.
- Test_Custom_MsgBoxIV: vbAbortRetryIgnore düğme grubuyla "0%", "10%", "20%" yazılı düğmeler gösterilir. Bu örnekte Select Case, düğme yazılarından farklı olarak "Test1", "Test2", "Test3" değerlerini karşılaştırır; bu nedenle kendi işleminiz için Case değerlerini düğme yazılarıyla eşleştirmeniz gerekir.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Alt+F11 ile VBA editörünü açın ve basTests modülünü seçin.
- Denemek istediğiniz Test_Custom_MsgBox yordamının içine tıklayıp F5 tuşuna basın.
- Kendi çalışmanızda aynı yapıyı kullanmak için basMsgCustom modülünü projenize aktarın.
- Mesaj metnini hazırlayıp MsgBoxC fonksiyonunu çağırın; parametreler sırasıyla metin, düğme stili, başlık, simge ve en çok üç düğme yazısıdır.
- Dönen değeri Select Case ile değerlendirip her düğme için işleminizi yazın.