Excel'de mesaj kutusu işlevleri nasıl oluşturulur?
VBA hakkında öğrendiğim ilk şey mesaj kutusunun (“msgbox işlevi”) nasıl kullanılacağıydı. Belirli bir mesajı görüntülemek için Excel pencerenizdeki basit bir açılır kutuya benzer. Düşünürseniz iki şekilde kullanabilirsiniz.
- Kullanıcıya bir mesaj iletin.
- Kullanıcıdan basit bir yanıt alın.
Çoğu VBA programcısı, makro kodlarında onları daha etkileşimli hale getirmek için kullanır ve eğer bilmiyorsanız, bahse girerim bu makaleyi okuduktan sonra ona aşık olacaksınız.
Uzman İpucu: VBA’ya yeni başlıyorsanız, VBA mesaj kutusu hakkında daha fazla bilgi edinmek iyi bir fikir olabilir.
Bu nedenle, bugün bu makalede Excel’de mesaj kutusu kullanımına ilişkin tüm ayrıntıları ve gerçek dünyadan bazı örnekleri sizlerle paylaşmak istiyorum.
…Başlayalım.
Sözdizimi
=MSGBOX(istem, [düğmeler], [başlık], [yardım dosyası, bağlam])
- istem Bir mesaj olarak görüntülemek için kullanılan dize ifadesi. Maksimum karakter uzunluğu, karakter genişliğine bağlı olarak 1024’tür.
- [düğmeler] Bu bağımsız değişkeni düğmeleri, simge stilini, düğme kimliğini ve mesaj kutusu modunu belirtmek için kullanabilirsiniz.
- [title] Bu argümanı mesaj kutunuzun başlık metnini belirtmek için kullanabilirsiniz.
- [yardım dosyası] Bu argüman, kullanıcı için bir yardım dosyası belirlemenize yardımcı olacaktır. Kullanıcı bu yardım dosyasına yardım butonunu kullanarak erişebilir. Bir yardım dosyası belirtirseniz bağlam numarası belirtmeniz zorunludur.
- [bağlam] Yardım menüsünden bir yardım konusu atamak için kullanılan sayısal ifade.
Not: Yukarıdaki listede köşeli parantez içindeki bağımsız değişkenler isteğe bağlıdır; bunları belirtmeyi atlayabilirsiniz.
Bir mesaj kutusu nasıl özelleştirilir ve farklı düğmeler nasıl kullanılır?
Bir VBA mesaj kutusunu mevcut tüm seçeneklerle kolayca özelleştirebilirsiniz. Bu seçeneklere bir göz atalım.
#1. vbOKYalnızca
Bu size basit bir Tamam düğmesi verir. Kullanıcı mesajı okuduktan sonra kapatmak için üzerine tıklayabilir. Ayrıca Tamam düğmesine tıklandığında çalıştırmak için bir makro da kullanabilirsiniz.
OKOnly() altında
MsgBox Komut İstemi := “Bu bir MsgBox’tır”, _
Düğmeler:=vbOKOnly, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#2. vbOKİptal
Bu sabit size bir Tamam ve iptal düğmesi verir. Kullanıcının artık devam etmek için Tamam’a basmak veya çıkmak için iptal etmek için iki seçeneği vardır.
OKCancel() altında
MsgBox istemi:= »İyi misin? », _
Düğmeler:=vbOKCancel, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#3. vbAbortYeniden DeneYoksay
Bu, Hakkında, Yeniden Dene ve Atla için üç düğme görüntülemenize olanak tanır. Kullanıcı işlemi iptal edebilir, yeniden deneyebilir veya göz ardı edebilir.
OKCancel() altında
MsgBox istemi:= »İyi misin? », _
Düğmeler:=vbOKCancel, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#4. vbEvetHayırİptal
Bu sabit Evet, Hayır ve İptal için üç düğme görüntüler. Kullanıcı kabul edip devam etmek için Evet’i, reddetmek için Hayır’ı veya mesaj kutusunu kapatmak için iptal edebilir.
YesNoCancel() altında
MsgBox Prompt := “Artık üç düğmeniz var”, _
Düğmeler:=vbYesNoCancel, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#5. vbEvetHayır
Bu sabit, Evet ve Hayır için iki düğme görüntüler. Kullanıcı kabul etmek ve devam etmek için Evet’e veya reddetmek için Hayır’a tıklayabilir.
EvetHayır() altında
MsgBox Prompt := “Artık iki butonunuz var”, _
Düğmeler:=vbEvetHayır, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#6. vbYeniden Deneİptal
Şimdi iki düğme gösteriliyor; yeniden dene ve iptal et. Kullanıcıdan işlemi yeniden denemesini veya iptal etmesini istemek için bunu kullanabilirsiniz.
Sub RetryCancel()MsgBox Prompt:=”Lütfen tekrar deneyin”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub
#7. vbİnceleme
Bu sabit, mesaj kutusunda mesajın kritik olduğunu belirten bir simge görüntüler.
Subkritik()
MsgBox Komut İstemi := “Bu kritik”, _
Düğmeler:=vbCritical, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#8. vbSoru
Bu sabit kullanıcıya bir soru sorulduğunda kullanılabilir.
Alt Soru()
MsgBox Komut İstemi := »Şimdi ne yapmalı? », _
Düğmeler:=vbSoru, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#9. vbÜnlem
Bu sabit, mesajla birlikte bir ünlem simgesi görüntüleyecektir.
Ünlem Altında()
MsgBox Komut İstemi := »Şimdi ne yapmalı? », _
Düğmeler:=vbÜnlem, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#on. vbBilgi
Mesajın bilgi olduğunu belirten bir simge görüntülenecektir.
Sub Information()MsgBox Prompt:=”Şimdi ne yapmalı?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub
#11. vbDefaultButton1
Mesaj kutunuzdaki ilk düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.
Sub DefaultButton1()MsgBox Prompt:=”Button1 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub
#12. vbDefaultButton2
Mesaj kutunuzdaki ikinci düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.
Sub DefaultButton2()MsgBox Prompt:=”Button2 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub
#13. vbDefaultButton3
Mesaj kutunuzdaki üçüncü düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.
Sub DefaultButton3()MsgBox Prompt:=”Button3 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub
#14. vbDefaultButton4
Mesaj kutunuzdaki dördüncü düğmeyi varsayılan düğme olarak belirtmek için bu sabiti kullanın.
Sub DefaultButton4()MsgBox Prompt:=”Button4 Vurgulandı mı?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub
#15. vbApplicationModal
Bu sabit uygulamayı (Excel) askıya alacaktır, kullanıcının uygulamayı kullanabilmesi için msgbox’a yanıt vermesi gerekir.
OKOnly() altında
MsgBox Komut İstemi := “Bu bir MsgBox’tır”, _
Düğmeler:=vbOKOnly, _
Başlık: = “Posta Kutusu”, _
Altyazı bitişi
#16. vbSystemModal
Bu sabit işletim sisteminizdeki tüm uygulamaları askıya alacaktır, kullanıcının öncelikle mesaj kutusuna yanıt vermesi gerekir.
Sub ApplicationModal()MsgBox Prompt := »Bu uygulama modelidir», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub
#17. vbMsgBoxYardımDüğmesi
Posta kutunuza bir yardım düğmesi eklemek için bu sabiti kullanın. Yardım düğmesini kullanmak için bir yardım dosyası ve bağlam numarası ekleyebilirsiniz.
Sub HelpButton()MsgBox Prompt:=”Yardım Düğmesini Kullan”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub
Kullanıcı yardım düğmesine tıkladığında bir yardım menüsü açılır.
#18. vbMsgBoxSetÖn Plan
Bu sabit, mesaj kutusu pencerenizi ön plan penceresi yapmanıza yardımcı olacaktır.
Sub SetForeground()MsgBox Prompt:=”Bu MsgBox ön plandadır”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub
#19. vbMsgBoxRight
Metin bu sabit kullanılarak sağa hizalanacaktır.
MsgBoxRight() altında
MsgBox Prompt := “Metin sağda”, _
Düğmeler:=vbOK + vbMsgBoxRight, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
#20. vbMsgBoxRtlReading
Bu sabiti kullanarak mesaj kutusu sağa dönecektir. Bu sabit öncelikle İbranice ve Arapça sistemler için tasarlanmıştır.
MsgBoxRtlRead() altında
MsgBox Prompt := “Bu kutu ters çevrildi”, _
Düğmeler:=vbOK + vbMsgBoxRtlRead, _
Başlık: = “Posta Kutusu”
Altyazı bitişi
Dönüş değerleri
Bir kullanıcı düğmelerden birine tıklayarak mesaj kutusuna her yanıt verdiğinde bir sayı oluşturulur. Bu, kullanıcının hangi düğmeyi tıkladığını belirlemenize yardımcı olacaktır.
Devamlı | Değer | Tanım |
---|---|---|
vbOK | 1 | ELBETTE |
vbİptal | 2 | İptal etmek |
vbİptal | 3 | Kürtaj |
vbTekrar dene | 4 | Tekrar başla |
vbAtla | 5 | Görmezden gelmek |
vb Evet | 6 | Evet |
vbHayır | 7 | HAYIR |
Excel’de VBA Mesaj Kutusu İşlevini Kullanmanın Gerçek Dünya Örnekleri
Burada gerçek hayattaki bazı VBA mesaj kutusu örneklerini listeledim ve bu örneklerin size onu kullanmanız için ilham vereceğinden eminim.
#1. VBA MsgBox ile makro çalıştırma
Artık msgbox fonksiyonunun yardımıyla, bir makroyu çalıştırmadan önce kullanıcıya soru sorabilirsiniz. Anlamak için aşağıdaki makroya bakalım.
SaveThis() altında
Tamsayı Olarak Loş Sonuç
Sonuç = MsgBox(“Bu dosyayı kaydetmek istiyor musunuz?”, vbOKCancel)
Sonuç = vbOK ise
ActiveWorkbook.Save
Altyazı bitişi
Kullanıcıdan çalışma kitabını kaydetmesini isteyebilirsiniz ve kullanıcı Tamam düğmesini tıklatırsa makro kodu çalışma kitabını kaydedecektir.
#2. Mesaj kutusuna tablo ekleme
Mesaj kutusuna tablo halinde veri girmek için vbTab’ı kullanabilirsiniz. Bu örnekte tablo A1 hücresinden başlamaktadır.
AddToMsgBox() altında
Dize Olarak Mesajı Karart
int olarak dim r
int olarak c’yi kıs
rc’yi int olarak kıs
CC’yi int olarak kıs
myRows’u Aralık Olarak Dimle
myColumns’ı Aralık Olarak Karart
Mesaj = “”
MyRows = Aralık’ı Ayarla(“A:A”)
myColumns’u Ayarla = Aralık(“1:1”)
rc = Application.CountA(myRows)
cc = Application.CountA(myColumns)
r = 1’den rc’ye için c = 1’den cc’ye
Mesaj = Mesaj ve Hücreler(r, c).Metin
Eğer c <= cc ise O zaman
Mesaj = Mesaj & vbTab
sonraki cMsg = Mesaj & vbCrLf
Sonraki r
Mesaj Kutusu Mesaj
Altyazı bitişi
#3. Bir dosyayı açarken mesaj kutusunu göster
Aşağıdaki makroya bakarsanız, çalışma kitabı açıldığında görüntülenecek bir mesaj oluşturmak için auto_open’ı kullandım.
auto_open() altında
MsgBox “Exceladvisor’a hoş geldiniz & Bu dosyayı indirdiğiniz için teşekkür ederiz” _
+ vbNewLine + vbNewLine + “Burada MsgBox fonksiyonunun detaylı açıklamasını bulacaksınız. » _
+ vbNewLine + vbNewLine + “Ve diğer harika şeylere de göz atmayı unutmayın. »
Altyazı bitişi
Paket servis
- Yardım düğmesini dördüncü düğme olarak kullanmazsanız, mesaj kutusuna dört düğme ekleyemezsiniz.
- Mesaj kutunuza yardım dosyası oluşturmak için aşağıdaki örnek dosyaya başvurabilirsiniz.
Örnek dosya
Bu konuda daha fazla bilgi edinmek için bu örnek dosyayı buradan indirin .
Çözüm
Mesaj kutusu yalnızca mesajı iletmenize yardımcı olmakla kalmaz, aynı zamanda kullanıcı üzerinde yaratıcı bir izlenim bırakır. Onlara mesaj gönderebilir ve basit bir yanıt alabilirsiniz.
Ve dediğim gibi, eğer VBA’da yeniyseniz mesaj kutusunun nasıl kullanılacağını öğrenmek en iyi şeylerden biridir. Umarım bu makale VBA’da uzmanlaşma hayalinize yaklaşmanıza yardımcı olmuştur, ama şimdi bana bir şey söyleyin.
MsgBox fonksiyonunun VBA’daki en havalı şeylerden biri olduğunu mu düşünüyorsunuz?
Görüşlerinizi yorum kısmında benimle paylaşmayı unutmayın, sizden haber almayı çok isterim ve bu ipucunu arkadaşlarınızla paylaşmayı unutmayın.
VBA hakkında daha fazla bilgi edinin