Durum:
Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:
1. İlk olarak, Integer türünde cevap adında bir değişken tanımlıyoruz.
Dim cevap As Integer
2. Değişken yanıtı kullanıcıdan gelen girdiyle başlatmak için MsgBox işlevini kullanırız.
MsgBox işlevi, parantez kullanırken üç bağımsız değişkene sahiptir. İlk kısım mesaj kutusundaki mesaj için kullanılır. Mesaj kutusunda hangi düğmelerin ve simgelerin görünmesini istediğinizi belirtmek için ikinci bölümü kullanın. Üçüncü kısım, mesaj kutusunun başlık çubuğunda görüntülenir.
Not: İmlecinizi Visual Basic Düzenleyicisi'nde vbYesNo'nun üzerine getirin ve başka hangi düğmeleri ve simgeleri kullanabileceğinizi görmek için sağ tıklayın. vbYesNo ve vbQuestion sabitleri yerine, karşılık gelen 4 ve 32 değerlerini de kullanabilirsiniz.
3. Kullanıcı Evet düğmesini tıklarsa, Excel VBA sayfayı boşaltır. Kullanıcı Hayır düğmesini tıklarsa hiçbir şey olmaz. Bunu gerçekleştirmek için aşağıdaki kod satırlarını ekleyin.
Sonuç:
MsgBox işlevi, parantez kullanırken üç bağımsız değişkene sahiptir. İlk kısım mesaj kutusundaki mesaj için kullanılır. Mesaj kutusunda hangi düğmelerin ve simgelerin görünmesini istediğinizi belirtmek için ikinci bölümü kullanın. Üçüncü kısım, mesaj kutusunun başlık çubuğunda görüntülenir.
cevap = MsgBox("Sayfayı boşaltmak istediğinizden emin misiniz?", vbYesNo + vbQuestion, "Sayfayı Temizle")
Not: İmlecinizi Visual Basic Düzenleyicisi'nde vbYesNo'nun üzerine getirin ve başka hangi düğmeleri ve simgeleri kullanabileceğinizi görmek için sağ tıklayın. vbYesNo ve vbQuestion sabitleri yerine, karşılık gelen 4 ve 32 değerlerini de kullanabilirsiniz.
3. Kullanıcı Evet düğmesini tıklarsa, Excel VBA sayfayı boşaltır. Kullanıcı Hayır düğmesini tıklarsa hiçbir şey olmaz. Bunu gerçekleştirmek için aşağıdaki kod satırlarını ekleyin.
If cevap = vbYes Then
Cells.ClearContents
Else
'birşey yapma
End If
4. Sayfadaki komut düğmesine tıklayın.
5. Evet'e tıklayın.
5. Evet'e tıklayın.
Sonuç:
Tüm kodlar:
Private Sub CommandButton1_Click()
Dim cevap As Integer
cevap = MsgBox("Sayfayı boşaltmak istediğinizden emin misiniz?", vbYesNo + vbQuestion, "Sayfayı Temizle")
If cevap = vbYes Then
Cells.ClearContents
Else
'birşey yapma
End If
End Sub
Başka bir örnek:
Sub Evet_Hayir_MsgBox()
Dim Cevap As VbMsgBoxResult
'VbMsgBoxResult aslında bir integer sayıdır.
'vbDefaultButton2 de Hayır seçeneği otomatik seçili gelir
'vbQuestion mesaj kutusuna soru işareti koyar
Cevap = MsgBox("Emin misiniz?", vbYesNo + vbQuestion + vbDefaultButton2, "Hücreleri sil")
If Cevap = vbYes Then
Range("A1:C9").Clear
Else
Exit Sub
End If
End Sub