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: