MsgBox Fonksiyonu

Sadece bir mesaj kutusu kullanıldığında, ekrana çıkan mesajı "Tamam" deyip geçmekten başka bir şansınız olmaz. Ama bazı durumlarda mesaj kutusunun size seçenek sunmasını isteyebilirsiniz. Örneğin, aşağıdaki resimde göreceğiniz gibi sayfamızda rastgele yerlerde yazılı olan verileri tek bir tuşa basarak temizlemek isteyelim. Ama bunu yapmadan önce mesaj kutusunun mesela "Emin misiniz?" türünde bir soru sormasını isteyellim.

msgg1

Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:

1. İlk olarak, "Cevap" şeklinde türü Integer (Tamsayı) olacak bir değişken tanımlayalım.

Dim Cevap As Integer

2. Tanımladığımız "Cevap" isimli değişken için kullanıcıdan gelecek yanıtın ne olacağını belirlemek için bir MsgBox fonksiyonu kullanın.

MsgBox fonksiyonunun, üç argümanı vardır. Mesaj kutusundaki mesaj için ilk kısım kullanılır. Araya virgül koyduktan sonra geçtiğimiz ikinci kısmı, Mesaj kutusunda görünmesini istediğiniz düğmeleri ve simgeleri belirtmek için kullanabilirsiniz. Üçüncü kısıma yazdığınız metin ise, mesaj kutusunun başlık çubuğunda görüntülenir.

Cevap = MsgBox("Bu sayfadaki yazılı olan her şeyi temizlemek istediğinize emin misiniz?", vbYesNo + vbQuestion, "Sayfayı Temizleme")

Not: Hangi simgenin ne işe yaradığını öğrenmek için, Visual Basic penceresindeyken, mause imlecini vbYesNo kodlarının olduğu yere konumlandırıp F1 tuşuna basabilirsiniz. VbYesNo ve vbQuestion sabitleri yerine, 4 ve 32 değerlerini de kullanabilirsiniz.

3. Kullanıcı Evet düğmesini tıklatırsa, sayfayı temizlensin, No düğmesine basarsa hiç bir şey olmasın şeklinde bir sonuç istiyoruz. Bunun yapmak için aşağıdaki kodları kullanabilirsiniz.

If answer = vbYes Then
    Cells.ClearContents
Else
    'bir şey olmasın
End If

4. Sayfadaki komut düğmesine tıklayın.

5. Evet'e tıklayın.

msgg2

Sonuç:

msgg3