Evet Hayır Mesaj Kutusu (Msgbox) - VBA Kodu Örnekleri

Bu eğitim, kullanıcılara mesaj kutularını görüntülemek için VBA MsgBox İşlevinin nasıl kullanılacağını ele alacaktır (Evet Hayır Mesaj Kutusu dahil). Giriş Kutuları hakkındaki makalemiz de ilginizi çekebilir.

VBA MsgBox İşlevi

VBA'da basit bir MsgBox görüntülemek kolaydır:

1 MsgBox "Bu Bir Mesaj Kutusudur"

Ancak basit bir OK mesaj kutusu görüntülemekten çok daha fazlasını yapabilirsiniz. Ayrıntılara girmeden önce hızlıca karmaşık örneğe bakalım…

VBA EvetHayır Mesaj Kutusu

Aşağıda bir mesaj kutusu oluşturacağız:

  • “Mesaj Kutusu Başlığı” başlığı ve “Metin” istemi
  • Bir soru işareti simgesi
  • Basit bir “Tamam” yerine Evet / Hayır seçenekleri
  • Varsayılan düğme = 'Hayır'
123 Dim cevap Tamsayı olarakcevap = MsgBox("Metin", vbQuestion + vbYesNo + vbDefaultButton2, "Mesaj Kutusu Başlığı")

Mesaj kutusu, kullanıcının seçimine bağlı olarak vbYes veya vbNo döndürür. Ardından, seçime göre farklı eylemler gerçekleştirebilirsiniz:

12345 Cevap = vbYes iseMsgBox "Evet"BaşkaMsgBox "Hayır"Bitir

Bir sonraki bölümde, mesaj kutuları oluştururken kullanabileceğiniz tüm seçenekleri size göstereceğiz. Daha sonra size MsgBox Fonksiyonunun sözdizimini tanıtacağız ve son olarak diğer mesaj kutusu örneklerini gözden geçireceğiz.

VBA Mesaj Kutusu Seçenekleri

Aşağıdaki resme bir göz atın. Burada (neredeyse) mesaj kutuları oluştururken kullanabileceğiniz tüm seçenekleri göreceksiniz. Simgelere ve farklı düğmelere dikkat edin.

Bu, Premium VBA Eklentimizden “MessageBox Builder”ın ekran görüntüsü: AutoMacro. MessageBox Builder, istediğiniz mesaj kutusunu hızlı bir şekilde tasarlamanıza ve kodu kod modülünüze eklemenize olanak tanır. Ayrıca birçok başka kod oluşturucu, kapsamlı bir VBA kod kitaplığı ve çeşitli kodlama araçları içerir. Herhangi bir VBA geliştiricisi için sahip olunması gereken bir şeydir.

MsgBox İşlevinin Sözdizimi

MsgBox( komut istemi [, düğmeler ] [, başlık ] [, yardım dosyası, bağlam ] )

istemi (Gerekli) - Bu, birincil mesaj kutusu metnidir.

düğmeler - Hangi düğmelerin görüntüleneceğini seçin. Atlanırsa, 'Yalnızca Tamam'. Burada ayrıca hangi simgenin gösterileceğini ve varsayılan düğmeyi belirleyebilirsiniz.

Başlık - Mesaj kutusunun üst kısmındaki başlık. Atlanırsa, mevcut uygulamanın adı görüntülenir (örn. Microsoft Excel).

yardım dosyası - Kullanıcı 'Yardım' düğmesine tıkladığında erişilebilecek yardım dosyasını belirtin. Belirtilmişse, bağlam da eklemelisiniz (aşağıda)

bağlam - Uygun Yardım konusuna atanan Yardım bağlam numarasını temsil eden sayısal ifade.

Muhtemelen yardım dosyasını ve bağlam argümanlarını görmezden gelebilirsiniz. Hiç kullandıklarını görmedim.

Mesaj Kutusu Başlığını ve İstemini Özelleştirin

MsgBox işlevi, başlığı özelleştirmenize ve aşağıdaki gibi mesajlar istemenize olanak tanır:

1 Msgbox "Sor", "Başlık"

Başka bir örnek:

123 Alt MsgBoxPromptTitle()MsgBox "1. Adım Tamamlandı. 2. adımı çalıştırmak için Tamam'a tıklayın.", "Adım 1/5"Alt Bitiş

Önemli! Metninizi alıntılarla çevrelemeyi unutmamalısınız.

MessageBox Satır Kesmeleri

Ayrıca 'vbNewLine' ile mesaj kutusu istemlerinize satır sonları ekleyebilirsiniz.

123 Alt MsgBoxPromptTitle_NewLine()MsgBox "1. Adım Tamamlandı." & vbNewLine & "2. Adımı Çalıştırmak için Tamam'a tıklayın.", , "Adım 1/5"Alt Bitiş

Metni birleştirmek için & sembolünü kullandığımıza dikkat edin. Metin birleştirmeyle ilgili makalemizde metinle & metinle ve satır sonu eklemek için diğer seçenekler hakkında daha fazla bilgi edinebilirsiniz.

Mesaj Kutusu Simgeleri

VBA, mesaj kutularınıza önceden oluşturulmuş dört simgeden birini ekleme olanağı sağlar:

Simge Sabiti Simge
vbInformation
vbKritik
vbQuestion
vbExclamation

Simge sabiti, düğme bağımsız değişkenine yerleştirilmelidir:

123 Alt MsgBoxQuestionIcon()MsgBox "Soru Örneği", vbQuestionAlt Bitiş

Bu, Soru simgesiyle varsayılan 'Tamam' mesaj kutusunu oluşturacaktır:

Yazdığınızda, VBA Düzenleyicisinin size sunulan seçenekleri nasıl göstereceğine dikkat edin:

Bu yararlıdır çünkü simgelerin veya düğmelerin tam sözdizimini veya adlarını hatırlamanız gerekmez.

Şimdi her bir mesaj kutusu simgesinin demosunu yapacağız:

MsgBox Simgeleri - Bilgi

123 Alt MsgBoxInformationIcon()MsgBox "Bilgi Örneği", vbInformationAlt Bitiş

MsgBox Simgeleri - Kritik

123 Alt MsgBoxCriticalIcon()MsgBox "Kritik Örnek", vbCriticalAlt Bitiş

MsgBox Simgeleri - Soru

123 Alt MsgBoxQuestionIcon()MsgBox "Soru Örneği", vbQuestionAlt Bitiş

MsgBox Simgeleri - Ünlem

123 Alt MsgBoxExclamationIcon()MsgBox "Ünlem Örneği", vbExclamationAlt Bitiş

Aşağıda farklı buton düzenleriyle mesaj kutuları oluşturma hakkında konuşacağız. Farklı bir mesaj kutusu türü seçerseniz, "+" kullanarak düğmelerden sonra simge türünü eklemeniz gerekir:

123 Alt MsgBoxQuestionIcon()MsgBox "Devam etmek istiyor musunuz?", vbOKCancel + vbQuestionAlt Bitiş

MsgBox Değişkenleri

Şimdiye kadar öncelikle varsayılan 'Tamam' mesaj kutusuyla çalıştık. Tamam mesaj kutusunun yalnızca bir seçeneği vardır: 'Tamam'a basmak kodun devam etmesine izin verir. Ancak diğer düğme gruplarını da belirleyebilirsiniz: Tamam / İptal, Evet / Hayır, vb.

Bu durumda hangi düğmeye basıldığına bağlı olarak farklı işlemler yapmak isteyeceksiniz. Bir örneğe bakalım.

İşte oluşturacağımız mesaj kutusu:

Bu, kodun tamamıdır (sıradan onu parçalayacağız):

123456789101112 Alt MsgBoxVariable()Dim cevap Tamsayı olarakcevap = MsgBox("Devam etmek istiyor musunuz?", vbQuestion + vbYesNo)Cevap = vbYes iseMsgBox "Evet"BaşkaMsgBox "Hayır"BitirAlt Bitiş

İlk önce mesaj kutusu çıktısını bir tamsayı değişkenine atadık.

123 Dim cevap Tamsayı olarakcevap = MsgBox("Devam etmek istiyor musunuz?", vbQuestion + vbYesNo)

Ardından, hangi düğmeye basıldığına bağlı olarak ne yapacağımızı belirlemek için If-Else kullanırız:

12345 Cevap = vbYes iseMsgBox "Evet"BaşkaMsgBox "Hayır"Bitir

MsgBox işlevi bir tamsayı değeri (1-7 arasında) döndürür, bu nedenle değişkeni bir tamsayı türü olarak tanımlarız. Ancak, tamsayıya başvurmak yerine bir sabite başvurabilirsiniz (ör. vbOK, vbCancel, vb.). Tüm seçenekleri görmek için bu tabloya bakın:

Buton Devamlı Değer
Tamam vbOK 1
İptal vbİptal 2
iptal vbAbort 3
yeniden dene vbRetry 4
Görmezden gelmek vbIgnore 5
Evet vbYes 6
Numara vbNo 7

Şimdi her bir düğme gruplandırmasını göstereceğiz:

Tamam Mesaj Kutusu - vbOKOnly

Bu standart VBA mesaj kutusudur.

123456 Alt MsgBox_OKOnly()Dim cevap Tamsayı olarakcevap = MsgBox("OKOnly Örnek", vbOKOnly)Alt Bitiş

Tamam İptal Mesaj Kutusu - vbOKCancel

123456789101112 Alt MsgBox_OKİptal()Dim cevap Tamsayı olarakcevap = MsgBox("Tamam İptal Örneği", vbOKCancel)Cevap = vbOK iseMsgBox "Tamam"BaşkaMsgBox "İptal"BitirAlt Bitiş

Evet Hayır Mesaj Kutusu - vbYesNo

123456789101112 Alt MsgBox_YesNo()Dim cevap Tamsayı olarakcevap = MsgBox("Evet Hayır Örnek", vbYesNo)Cevap = vbYes iseMsgBox "Evet"BaşkaMsgBox "Hayır"BitirAlt Bitiş

Evet Hayır İptal Mesaj Kutusu - vbYesNoCancel

1234567891011121314 Alt MsgBox_YesNoCancel()Dim cevap Tamsayı olarakcevap = MsgBox("Evet Hayır İptal Örneği", vbYesNoCancel)Cevap = vbYes iseMsgBox "Evet"ElseIf cevap = vbNo SonraMsgBox "Hayır"BaşkaMsgBox "İptal"BitirAlt Bitiş

Durdur Yeniden Dene İleti Kutusunu Yoksay - vbAbortRetryIgnore

1234567891011121314 Alt MsgBox_AbortRetryIgnore()Dim cevap Tamsayı olarakanswer = MsgBox("Yeniden Denemeyi Yoksay Örneği İptal Et", vbAbortRetryIgnore)Eğer cevap = vbAbort iseMsgBox "İptal"ElseIf cevap = vbRetry O zamanMsgBox "Yeniden Dene"BaşkaMsgBox "Yoksay"BitirAlt Bitiş

Yeniden Dene İptal İleti Kutusu - vbRetryCancel

123456789101112 Alt MsgBox_RetryCancel()Dim cevap Tamsayı olarakanswer = MsgBox("Örneği Yeniden Dene İptal Et", vbRetryCancel)Cevap = vbRetry iseMsgBox "Yeniden Dene"BaşkaMsgBox "İptal"BitirAlt Bitiş

VBA MessageBox Örnekleri

Makroyu Çalıştırmadan Önce Mesaj Kutusu Onayı

Bu kod, bir makro çağırmadan önce bir Evet Hayır Mesajı kutusu görüntüler. Evet tıklanırsa makro çağrılır, Hayır tıklanırsa Makro çalışmaz.

12345678 Alt Msgbox_BeforeRunning()Dim cevap Tamsayı olarakcevap = MsgBox("Makro1'i çalıştırmak istiyor musunuz?", vbQuestion + vbYesNo)Cevap = vbYes ise Macro1'i ArayınAlt Bitiş

Evet / Hayır Mesaj Kutusu - Alttan Çık

Burada, bir makroyu çalıştırmaya devam edip etmeyeceğini kullanıcıyla onaylayacağız. Hayır tıklanırsa kod alttan çıkar, aksi takdirde işlem devam eder.

12345678910 Alt Msgbox_BeforeRunning()Dim cevap Tamsayı olarakcevap = MsgBox("Devam etmek istiyor musunuz?", vbQuestion + vbYesNo)Cevap = vbNo ise Sub'dan Çıkın'Bazı KodlarAlt Bitiş

Access VBA'da VBA İleti Kutusu

Yukarıdaki örneklerin tümü, Access VBA'da Excel VBA'dakiyle tamamen aynı şekilde çalışır.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave