Excel VBA(Makro) sayesinde yazmış olduğumuz projelerde birçok yerde kullanıcıyı uyarmak, bilgilendirmek ve alternatif seçenekler sunmak için mesaj veya mesajlar vermemiz gerekir. Bunun için kullanılan en belirgin mesaj yöntemi ise VBA’nın MsgBox özelliğidir. Türkçe ifade ederken genelde Mesaj Kutusu diye ifade ederiz. Genelde basit şekilde kullanılan MsgBox’ın aslında bilmemiz gereken güzel detayları da mevcuttur.

VBA öğrenirken genelde ilk öğrenilen komutlardan biridir. Ancak maalesef üstünkörü geçilen bu komutun birçok özelliği var.

Bu yazıda sırasıyla bol örneklerle detaylı ve resimli bir şekilde sizlere kullanım şekillerinin tüm alternatiflerini tek tek üşenmeden anlatmaya çalışacağım. Size düşense sadece tek tek ama sıkılmadan deneme yaparak tekrar etmek. Yazı size başta uzun olduğu için zor veya sıkıcı gibi gelebilir ama kesinlikle çok kolay ve basit. Sadece anlaşılmayan herhangi bir nokta kalmaması adına yazı biraz uzun oldu. Bu yazıyı dikkatle okuduğunuzda MsgBox hakkında hiçbir probleminizin kalmayacağını düşünüyorum.

MsgBox yada Türkçe İfade ile Mesaj Kutusu kullanım şekli aşağıdaki gibidir.

MsgBox (Text,Buttons,MsgBox Style,Title,HelpFile,Context)

Daha açıklayıcı ve Türkçe bir ifade ile göstermek gerekirse,

MsgBox “Gösterilecek Mesaj Metni“, “Mesajda gösterilmesini istediğimiz düğmeler“, “Mesajda gösterilecek ifadeler“,”Mesaj Kutusunun Başlığı“, “Yardım”

şeklindedir.

msgbox

VBA MsgBox Etiketleri

 

Elbette tüm bu özellikleri kullanmak zorunda değiliz. Burada zorunlu olan kısım Gösterilecek Mesaj Metni kısmıdır.

Text (Gösterilecek Mesaj Metni) :

Buraya yazdıklarımız göstermek istediğimiz mesaj metnidir. Ancak mesaj metni 1024 karakterle sınırlıdır. Basit bir mesaj örneği vermek gerekirse

İlk Kullanım Şekli :

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj"
 End Sub

İkinci Kullanım Şekli (Prompt ile) :  Prompt komutunun kullanımı Prompt:= şeklindedir.

 Private Sub CommandButton1_Click() 
 MsgBox Prompt:="Vermek istediğimiz mesaj" 
 End Sub
msgbox

MsgBox Mesaj

msgbox

MsgBox Mesaj Kutusu

 

Buttons (Mesajda gösterilmesini istediğimiz düğmeler) :

Göstereceğimiz Mesajlarda Farklı Butonlar Gösterebiliriz.

Alfabetik Sırasıyla Buton Çeşitleri

1- vbAbortRetryIgnore – Değeri (2)
Mesaj kutusu üzerinde Durdur , Yeniden Dene , Yoksay gibi üç buton çıkmasını sağlarız.

Yada komutun kendisini yazmak yerine sadece 2 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbAbortRetryIgnore
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 2
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbAbortRetryIgnore
 End Sub
msgbox

MsgBox vbAbortRetryIgnore

2- vbMsgBoxHelpButton – Değeri (16384)
Mesaj kutusu üzerinde Tamam ve Yardım adlarında iki buton görünmesini sağlarız.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbMsgBoxHelpButton
 End Sub

yada sadece sayısal değerleri girebiliriz.

Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 16384
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbMsgBoxHelpButton
 End Sub

 

msgbox

MsgBox vbMsgBoxHelpButton

3- vbOKCancel – Değeri (1)
Mesaj kutusu üzerinde Tamam ve İptal adlarında iki buton görünmesini sağlarız.

Yada komutun kendisini yazmak yerine sadece 1 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbOKCancel
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 1
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbOKCancel
 End Sub
msgbox

MsgBox vbOKCancel

4- vbOKOnly – Değeri (0)
Mesaj kutusu üzerinde varsayılan bir Tamam tuşu görüntülemeyi sağlar. Bu ifade kullanılmadığında da mesaj kutusunun varsayılanı olarak bu tip otomatik kullanılır. Yada komutun kendisini yazmak yerine sadece 0 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbOKOnly
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 0
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbOKOnly
 End Sub
msgbox

MsgBox vbOKOnly

5- vbRetryCancel – Değeri (5)
Mesaj kutusu üzerinde Yeniden Dene ve İptal adlarında iki buton görüntülemeyi sağlarız.

Yada komutun kendisini yazmak yerine sadece 5 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbRetryCancel
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 5
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbRetryCancel
 End Sub
msgbox

MsgBox vbRetryCancel

6- vbYesNo – Değeri (4)
Mesaj kutusu üzerinde Evet ve Hayır adlarında iki buton görüntülemeyi sağlarız. En çok kullanılanlardan biridir.

Yada komutun kendisini yazmak yerine sadece 4 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNo
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 4
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNo
 End Sub
msgbox

MsgBox vbYesNo

7- vbYesNoCancel – Değeri (3)
Mesaj kutusu üzerinde Evet, Hayır ve İptal adıyla üç buton görüntülememizi sağlar.

Yada komutun kendisini yazmak yerine sadece 3 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel
 End Sub
msgbox

MsgBox vbYesNoCancel

MsgBox Style (Mesajda gösterilecek ifadeler) :

Göstereceğimiz Mesajlarda Farklı İfadeler Gösterebiliriz. İfade gösterimlerinde dikkat etmeniz gereken ise standart buton haricindeki gösterimlerde buton kodundan sonra “+” ifadesi kullanmanızdır. Aşağıdaki örnekleri inceleyebilirsiniz.

Alfabetik Sırasıyla İfade Çeşitleri

1- vbCritical – Değeri (16)

Bu örneği sadece standart bir mesajda yani özel bir buton kodu göstermek istemediğimiz durumlarda kodumuzu nasıl yazacağımızı anlatmak için yazdım. Burada herhangi bir vbCritical, yerine vbExclamation, vbInformation, vbMsgBoxRight, vbMsgBoxRtlReading, vbQuestion, vbSystemModal gibi bütün ifadeleri kullanabiliriz.

Mesaj kutusu üzerinde kırmızı bir daire içerisinde kritik bir ikaz ifade edebilmek için çarpı işareti çıkarmak için kullanırız.

Yada komutun kendisini yazmak yerine sadece 16 yazabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbCritical
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 16
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbCritical
 End Sub

msgbox

2- vbCritical – Değeri (16)

Bu örnek “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusu üzerinde kırmızı bir daire içerisinde kritik bir ikaz ifade edebilmek için çarpı işareti çıkarmak için kullanırız.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbCritical
 End Sub

yada komutlar yerine değerlerini yazabiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 16
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbCritical
 End Sub
msgbox

MsgBox vbCritical

3- vbExclamation – Değeri (48)

Bu örnek “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusu üzerinde trafik işaretlerine benzer bir sarı üçgen içerisinde ünlem işareti çıkartmak için kullanırız.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbExclamation
 End Sub

yada sadece sayısal değerlerini yazabiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 48
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbExclamation
 End Sub
msgbox

MsgBox vbExclamation

4- vbInformation – Değeri (64)

Bu örnek “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusu üzerinden mavi bir daire içerisinde kullanıcıya problem olmadan işlemi gerçekleştirdiğimizi sağlayan İ harfi iconu yani information çıkartmak için kullanabiliriz.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbInformation
 End Sub

yada sadece sayısal değerlerini yazabiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 64
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbInformation
 End Sub
msgbox

MsgBox vbInformation

5- vbMsgBoxRight – Değeri(524288)

Bu örnek “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusu üzerindeki mesajımızı kurunun sağına dayalı olarak gösterilmesi için kullanırız. Genelde Arapça harflerde ki gibi yazım düzeni sağdan sola doğru olan alfabelerde kullanılır.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbMsgBoxRight
 End Sub

yada sadece sayısal değerleri girebiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 524288
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbMsgBoxRight
 End Sub
msgbox

MsgBox vbMsgBoxRight

6- vbMsgBoxRtlReading – Değeri (1048576)

Bu örnek “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusunun üzerindeki kapat işaretinin ters tarafta( solda) çıkmasını sağlar. Aslında buda insanların alışkanlıklarından doğan direk kapat butonuna mouse götürmesinden ve böylece bir an da olsa kapatma işleminden vazgeçmesini yada kısa bir süre daha düşünmesini sağlıyor.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbMsgBoxRtlReading
 End Sub

yada sadece sayısal değerleri de girebiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 1048576
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbMsgBoxRtlReading
 End Sub
msgbox

MsgBox vbMsgBoxRtlReading

7- vbQuestion – Değeri (32)

Bu örnek “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusu üzerinde mavi bir daire içerisinde bir soru işareti iconu görüntülemek için kullanırız.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbQuestion
 End Sub

yada sadece sayısal değerlerini de yazabiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 32
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbQuestion
 End Sub
msgbox

MsgBox vbQuestion

8- vbSystemModal – Değeri (4096)

Bu örnekte “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Mesaj kutusu başlık çubuğuna standart bir VisualBasic form nesnesine benzetmek için kullanılır. Ayrıca istenirse buraya farklı bir icon da adapte edilebilir.

Ama en önemli özelliği bu mesaja cevap vermeden sistem üzerinde herhangi bir başka işlem yapılmasına kesinlikle izin vermez.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbSystemModal
 End Sub

yada sadece sayısal değerleri girebiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 4096
 End Sub

yada

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbSystemModal
 End Sub
msgbox

MsgBox vbSystemModal

9- vbApplicationModal 

Bu da bir önceki örnekteki gibi “buttons” yani “Mesajda gösterilmesini istediğimiz düğmeler” artı bir de “MsgBox Style” yani “mesaj” ifadesinin birlikte kullanılmasını içerir.
Bu kodun önemli özelliği de bu mesaja cevap vermeden excel programımız üzerinde herhangi bir başka işlem yapılmasına kesinlikle izin vermez.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbApplicationModal
 End Sub

Title (Mesaj Kutusunun Başlığı) :

Ayrıca göstereceğimiz mesajların mesaj kutusunun üst çubuğundaki kısma bir başlık da belirte biliyoruz. Bu işlemi de aşağıda göstermiş olduğum gibi yapabiliriz.

Örnek Kullanım:

Bu örnekte sadece Mesaj ve Mesaj Başlığı mevcuttur.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", , "Başlık Burada Gözüküyor"
 End Sub

yada aynı mesajı bu şekilde ifade edebiliriz.

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 title:="Başlık Burada Gözüküyor"
 End Sub
msgbox

MsgBox Title

Örnek Kullanım:

Bu örnekte Mesaj,  Butonlar ve Mesaj Başlığı birlikte mevcuttur.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel, "Başlık Burada Gözüküyor"
 End Sub

aynı kodu aşağıdaki gibi de kullanabiliriz.

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel, _
 title:="Başlık Burada Gözüküyor"
 End Sub
msgbox

MsgBox Button+Title

Örnek Kullanım:

Bu örnekte Mesaj,  Butonlar, İfadeler ve Mesaj Başlığı birlikte mevcuttur.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbSystemModal, "Başlık Burada Gözüküyor"
 End Sub

aynı kodu aşağıdaki gibi de kullanabiliriz.

 Private Sub CommandButton1_Click()
 MsgBox Prompt:="Vermek istediğimiz mesaj", _
 Buttons:=vbYesNoCancel + vbSystemModal, _
 title:="Başlık Burada Gözüküyor"
 End Sub
msgbox

MsgBox Button+Style+Title

HelpFile (Yardım) Context (id):

Bu kısımda da mesajın içerisinde bir de yardım dosyasını açabilmek için bir buton gösterebiliriz. Bunun için buton seçeneklerinden mutlaka vbMsgBoxHelpButton seçeneği seçilmeli veya eklenmelidir. Yardım dosyası yolu ile birlikte gösterilmeli. Son olarak ta Yardım dosyasını tanıtan sayısal bir ifade (id) girilmelidir. Bu id girildiyse mutlaka yardım dosyası da olmalıdır. Genelde chm dosyası oluştururken sağlanan id numarası girilmesi karışıklığı önleyecektir.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbMsgBoxHelpButton + vbSystemModal, "Başlık Burada Gözüküyor", ThisWorkbook.Path & "\nvcpl.chm", 0
 End Sub

Varsayılan (Default) buton belirlemek

Verdiğimiz mesajda birden çok buton gösterdiğimiz zamanlarda kullanabileceğimiz bir özellik de varsayılan yani default butonu bizim belirleye bilmemizdir.

Bu özelliği dört butona kadar belirleyebilme şansımız mevcut.

vbDefaultButton1, vbDefaultButton2, vbDefaultButton3, vbDefaultButton4

Örnek Kullanım:

Buradaki örnekte ikinci Butonu yani “Hayır” butonunu varsayılan yapmak için vbDefaultButton kodunun sonunakullandık. Ancak siz kaçıncı butonu aktif yapmak istiyorsanız sonundaki numarayı ona göre değiştirmelisiniz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", vbYesNoCancel + vbDefaultButton2
 End Sub

yada sadece sayısal değerleri girebiliriz.

 Private Sub CommandButton1_Click()
 MsgBox "Vermek istediğimiz mesaj", 3 + 256
 End Sub

msgbox

Mesajı satırlara ayırma alt satıra geçme

Bazen yazdığımız mesajlarda satırlara bölmemiz gerekebilir. Bunun için kullanabileceğimiz dört ayrı seçeneğimiz mevcut. Bunlar

 

Sabit Eşdeğer Chr fonksiyonu Genel açıklama
vbLf Chr (10) Satır besleme
vbCr Chr (13) Satırbaşı
vbCrLf Chr (13) ve Chr (10) Satır başı satır besleme kombinasyonu
vbNewLine Windows için Excel’de Chr (13) & Chr (10) veya Mac için Excel’de Chr (13) Platforma özel yeni satır karakteri

şeklindedir.

Örnek Kullanım:

 Private Sub CommandButton1_Click()
 MsgBox "İlk satır" & vbCrLf & "İkinci satır" & vbNewLine & "Üçüncü satır" & vbLf & "Dördüncü satır" & vbCr & "Beşinci satır"
 End Sub

msgbox

Önemli Not: Mesajımıza cevap verilmeden geçilmemesini sağlamak için iki komutumuz var. Bunlar hakkında da örnekleri yukarıda verdim. Birincisi vbApplicationModal (Bu komut excel uygulamanızı bekletecek ve mesaja bir cevap verilmeden herhangi bir işlem yapılmasına engel olacaktır) İkincisi ise  vbSystemModal (Bu komut ile sadece excel uygulamamızı değil tüm sistemi beklemeye almaktayız. Mesaja cevap verilmeden herhangi bir işlem yapılamayacaktır)

Yukarıda Ayrıntılarını Detaylı Şekilde Verdiğimiz Tüm Komutların Değerlerine Göre Sıralı Tablosu 

Komutların üzerine tıklayarak ayrıntılarını tekrar inceleyebilirsiniz.

Komut Değer Açıklama
vbOKOnly 0 Sadece Tamam butonu
vbOKCancel 1 Tamam ve İptal butonları.
vbAbortRetryIgnore 2 Durdur , Yeniden Dene ve Ignore butonları.
vbYesNoCancel 3 Evet , Hayır ve İptal butonları.
vbYesNo 4 Evet ve Hayır butonları.
vbRetryCancel 5 Yeniden Dene ve İptal butonları.
vbCritical 16 Kritik Mesaj simgesi.
vbQuestion 32 Uyarı Sorgu simgesi.
vbExclamation 48 Uyarı Mesajı simgesi.
vbInformation 64 Bilgi İleti simgesi.
vbDefaultButton1 0 Varsayılan ilk düğme.
vbDefaultButton2 256 Varsayılan ikinci düğme.
vbDefaultButton3 512 Varsayılan üçüncü düğme.
vbDefaultButton4 768 Varsayılan dördüncü düğme.
vbApplicationModal 0 Uygulama modeli; Geçerli uygulamada çalışmaya devam etmeden önce kullanıcı mesaj kutusuna cevap vermelidir.
vbSystemModal 4096 Sistem modal; Tüm mesajlar, kullanıcı mesaj kutusuna cevap verene kadar askıya alınır.
vbMsgBoxHelpButton 16384 Mesaj kutusuna Yardım butonu ekler.
vbMsgBoxSetForeground 65536 Mesaj kutusu penceresini ön plan penceresi olarak belirtir.
vbMsgBoxRight 524288 Metin sağa hizalı
vbMsgBoxRtlReading 1048576 Metnin, İbranice ve Arapça sistemlerde sağdan sola okuma olarak görünmesi gerektiğini belirtir.

 

Butonlarda Tıkladığımız Seçeneklerin Değer Tablosu

Değer Açıklama
1 Tamam düğmesinin tıklandığını belirtir. İngilizcesi OK 
2 İptal düğmesine tıklandığını belirtir. İngilizcesi Cancel 
3 Durdur düğmesine tıklandığını belirtir. İngilizcesi Abort
4 Yeniden Dene düğmesine tıklandığını belirtir. İngilizcesi Retry
5 Yoksay düğmesini tıklattığını belirtir. İngilizcesi Ignore 
6 Evet düğmesinin tıklandığını belirtir. İngilizcesi Yes 
7 Hayır düğmesinin tıklandığını belirti. İngilizcesi No 

 

MsgBox (Mesaj Kutusu) tarafından döndürülen değerlere göre program akışına karar verebilirsiniz?

Yukarıdaki tabloda, VBA Msgbox fonksiyonunun diyalog kutusuna tıklanan butona (tuşa) karşılık gelen bazı tamsayı değerleri döndürdüğünü görebiliriz. Bunu if then else döngüsü kullanarak veya bir Select Case ifadesi kullanarak kontrol edebiliriz 

Select Case Kontrolü ile ilgili bir örnek vermek gerekirse

Örnek Kullanım:

Buradaki örnekte cevapları kontrol etmeyi göreceğiz.

Verilen cevapları Case kontrol yapısı ile ayırt edelim. Bu örnek için 3 adet değişken tanımladık.

 Private Sub CommandButton1_Click()
 Dim Komut As Integer
 Dim Mesaj As String
 Dim Baslik As String
     Mesaj = "Aşağıdaki Butonlardan Birine Tıklayın"
     Baslik = "Başlık Burada Gözüküyor"
     Komut = MsgBox(Mesaj, vbYesNoCancel + vbQuestion, Baslik)
   Select Case Komut
       Case 6
       MsgBox "Evet Butonuna Tıkladınız."
       Case 7
       MsgBox "Hayır Butonuna Tıkladınız."
       Case 2
       MsgBox "İptal Butonuna Tıkladınız."
   End Select
End Sub

yada aynı örneği if then else komutları ile yapalım

 Private Sub CommandButton1_Click()
 Dim Komut As Integer
 Dim Mesaj As String
 Dim Baslik As String
     Mesaj = "Aşağıdaki Butonlardan Birine Tıklayın"
     Baslik = "Başlık Burada Gözüküyor"
     Komut = MsgBox(Mesaj, vbYesNoCancel + vbQuestion, Baslik)
         If Komut = 6 Then
         MsgBox "Evet Butonuna Tıkladınız."
         Else
             If Komut = 7 Then
             MsgBox "Hayır Butonuna Tıkladınız."
             Else
             MsgBox "İptal Butonuna Tıkladınız."
End If
End If
End Sub

msgboxmsgboxmsgboxmsgbox

 

Ek Bilgi:

1- Excel Açılış’da Otomatik Mesaj Göstermek İsterseniz

Tüm bu özelliklerin yanında bazen bu oluşturduğumuz mesajları excel açılır açılmaz göstersin isteriz. Bunun için yapmanız gereken Auto_Open veya Workbook_Open yordamlarını kullanmanız gerekecektir.

Örnek Kullanım:

“BuÇalışmaKitabı” içerisine aşağıdaki kodları yazdığınızda mesajınız excel açıldığında otomatik görünecektir.

Private Sub Workbook_Open()
MsgBox "Vermek istediğimiz mesaj"
End Sub

msgboxYazımı burada bitirirken şunu belirtmek istiyorum, bu yazıyı hazırlarken elimden geldiği kadar Excel VBA hakkında hiçbir bilgisi olmayan kişileri düşündüm ve mümkün mertebe en kolay anlaşılabilecek şekilde hazırlamaya çalıştım. İnternet üzerinde bu kadar detaylı ve kolay bir şekilde anlatılan başka bir yazı en azından şimdilik yok. Sizin de bu konuyu tamamen anlayabilmeniz için tek yapmanız gereken her konuda vermiş olduğum resimli ve alternatifli örnekleri kendinizin de uygulamasıdır. Fırsat bulduğum da videolu eğitimi de Youtube DEGARADO kanalında yayınlayacağım ve yazının altına ekleyeceğim.

Neden birçok yerde ücretli verilen bu eğitimleri yazdığımı merak edenlere, inanın bu site sayesinde büyük bir kazancım yok, hatta kendi masrafını bile her zaman karşılamıyor. Sadece herkesin bir uğraşı ve çabası var ben de site ile ilgilenmeyi seviyorum o kadar. Bir nevi bilgimin zekatı diyebiliriz.

Yazıdan faydalanan kişilerden isteğim ise; en azından yorumlar kısmından bir teşekkürü çok görmemeniz benim de böylece isteğimin devam etmesi.

 


38 yorum

Anonim · 01 Aralık 2023 22:27 tarihinde

Ne kapsamlı bir açıklama olmuş. Altın değerinde bir siteniz var. Çok teşekkür ederim.

necip · 19 Mayıs 2023 16:59 tarihinde

help buton kullanımı hakkında daha geniş bilgi verirmisiniz? mesela help butonuna basınca google’a gitmesini istesek.

Anonim · 31 Ocak 2023 10:10 tarihinde

Çok teşekkürler, emeğinize sağlık.

okan · 26 Aralık 2022 22:55 tarihinde

msgbox’ ı nasıl renkli yapabiliriz? Kutu renkli gelsin.

Emre · 23 Mart 2022 10:55 tarihinde

Hazırlanmasında müthiş emek var, ellerinize sağlık.

Mehmet · 15 Şubat 2022 12:56 tarihinde

Teşekkürler

Anonim · 27 Aralık 2021 10:46 tarihinde

Teşekkürler bu kadar detaylı anlatım görmemiştim. İşime yaradı.

yeni programcı · 23 Ocak 2021 15:32 tarihinde

sey bana surekli guncellenen bir msgbox lazım acaba e postamla yardım edermisiniz e posta=botime4646

ZEKİ · 07 Ocak 2021 22:39 tarihinde

Örnekler için çok teşekkürler emeğine sağlık çok detaylı olmuş Faydalı bir anlatım olmuş 1993 yılından beri bende bilgisayarla uğraşıyorum ilk bilgisayarım 1 remlik dos sistemli disketle açılırdı. ilk başlangıcım msdos sisteminde öğrendik cobol, qbasıc dbase3 dilerinde daireme ve okullara proğramlar yaptım daireler tam sisteme geçene kadar tahminim 2011 yılına kadar kullandılar , şimdide excel i geliştirmeye çalışıyorum yardımlarınızla sizlerden çok şeyler öğreniyoruz emeğinize sağlık teşekkürler kolay gelsin .

ZEKİ · 07 Ocak 2021 21:48 tarihinde

Örnekler için çok teşekkürler emeğine sağlık çok detaylı olmuş Faydalı bir anlatım olmuş kolay gelsin ALLAH A emanet ol.

Bir yanıt yazın

Avatar placeholder

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.