Excel VBA içindeki iletişim kutuları (İletişim Kutuları), kullanıcıya bilgi görüntülemek için kullanılır.
MsgBox işlevi bir iletişim kutusunda bir mesaj görüntüler ve kullanıcının bir düğmeyi tıklatmasını bekler, ardından kullanıcının hangi düğmeyi tıklattığını belirten bir tam sayı döndürür.
En yaygın iletişim kutusu Mesaj Kutusu'dur, ancak Giriş Kutusunu da kullanabiliriz.
Şu ana kadar bilgileri ekranda görüntülemek için MsgBox iletişim kutusunu kullandık.
Sub delete_B2() Range("B2").ClearContents MsgBox "The contents of B2 have been deleted !" '"B2 hücresinin içeriği silindi!" End Sub
Bu durumda MsgBox yalnızca bir argümanla çağrılır. Görmek aşağıdaki kod:
Şimdi iki talimat yürütülmeden önce silme işleminin onaylanmasını isteyecek bir iletişim kutusu oluşturacağız. O zaman kullanacağımız üç argüman var:
MsgBox([TEXT], [BUTTONS], [TITLE])
Sub delete_B2() If MsgBox("Are you sure that you wish to delete the contents of B2 ?", vbYesNo, "Confirm") = vbYes Then Range("B2").ClearContents MsgBox "The contents of B2 have been deleted !" End If End Sub
Sonuç:
Private Sub warning(var_text As String) MsgBox "Caution : " & var_text & " !" End Sub Sub macro_test() If Range("A1") = "" Then warning "empty cell" '"boş hücre" ElseIf Not IsNumeric(Range("A1")) Then warning "non-numerical value" '"sayısal olmayan değer" End If End Sub
vbYesNo, iletişim düğmelerinin "Yes" ve "No" olduğunu belirtir ve vbYes, "Yes" düğmesini temsil eder:
If MsgBox("Text", vbYesNo, "Title") = vbYes Then 'Yes düğmesine basılırsa...
Devamlı | Sayısal değer | Tanım |
---|---|---|
vbOKOnly | 0 | |
vbOKCancel | 1 | |
vbAbortRetryIgnore | 2 | |
vbYesNoCancel | 3 | |
vbYesNo | 4 | |
vbRetryCancel | 5 |
vbCritical | 16 | |
vbQuestion | 32 | |
vbExclamation | 48 | |
vbInformation | 64 |
Burada, kullanıcı Yes tuşuna basana kadar döngüde her seferinde görüntülenmeye devam edecek bir MsgBox örneği verilmiştir:
Sub humor() Do If MsgBox("Do you like the Moonexcel site ?", vbYesNo, "Survey") = vbYes Then Exit Do '=> Response Yes = Evet, döngüden çıkıyoruz End If Loop While 1 = 1 '=> Sonsuz döngü MsgBox ";-)" End Sub
Yeni bir şerit görüntülemek için şeridin taşınmasından sorumlu olan Chr işlevini 10 numaralı bağımsız değişkenle kullanabilirsiniz, örneğin:
MsgBox "Example 1" & Chr(10) & "Example 2" & Chr(10) & Chr(10) & "Example 3"
Aşağıdaki sonucu elde ederiz:
Bir Giriş Kutusu, kullanıcıdan bir iletişim kutusuna bir değer girmesini ister; örneğin:
Sub example() Dim result As String result = InputBox("Text ?", "Title") 'Değişkene Giriş Kutusu'na girilen değer atanır. If result <> "" Then 'Değer "" dışında herhangi bir şeyse sonuç görüntülenecektir MsgBox result End If End Sub
Aşağıdaki sonucu elde ederiz:
Üçüncü argüman varsayılan değeri ayarlamak için kullanılabilir:
InputBox("Text ?", "Title", "Default value")
Sonuç aşağıdaki gibidir: