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.

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 Mesaj

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 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 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 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 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 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 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 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

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 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 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 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 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 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 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 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 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 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 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

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

 

SabitEşdeğer Chr fonksiyonuGenel açıklama
vbLfChr (10)Satır besleme
vbCrChr (13)Satırbaşı
vbCrLfChr (13) ve Chr (10)Satır başı satır besleme kombinasyonu
vbNewLineWindows 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

Ö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.

KomutDeğerAçıklama
vbOKOnly0Sadece Tamam butonu
vbOKCancel1Tamam ve İptal butonları.
vbAbortRetryIgnore2Durdur , Yeniden Dene ve Ignore butonları.
vbYesNoCancel3Evet , Hayır ve İptal butonları.
vbYesNo4Evet ve Hayır butonları.
vbRetryCancel5Yeniden Dene ve İptal butonları.
vbCritical16Kritik Mesaj simgesi.
vbQuestion32Uyarı Sorgu simgesi.
vbExclamation48Uyarı Mesajı simgesi.
vbInformation64Bilgi İleti simgesi.
vbDefaultButton10Varsayılan ilk düğme.
vbDefaultButton2256Varsayılan ikinci düğme.
vbDefaultButton3512Varsayılan üçüncü düğme.
vbDefaultButton4768Varsayılan dördüncü düğme.
vbApplicationModal0Uygulama modeli; Geçerli uygulamada çalışmaya devam etmeden önce kullanıcı mesaj kutusuna cevap vermelidir.
vbSystemModal4096Sistem modal; Tüm mesajlar, kullanıcı mesaj kutusuna cevap verene kadar askıya alınır.
vbMsgBoxHelpButton16384Mesaj kutusuna Yardım butonu ekler.
vbMsgBoxSetForeground65536Mesaj kutusu penceresini ön plan penceresi olarak belirtir.
vbMsgBoxRight524288Metin sağa hizalı
vbMsgBoxRtlReading1048576Metnin, İ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ğerAçıklama
1Tamam düğmesinin tıklandığını belirtir. İngilizcesi OK 
2İptal düğmesine tıklandığını belirtir. İngilizcesi Cancel 
3Durdur düğmesine tıklandığını belirtir. İngilizcesi Abort
4Yeniden Dene düğmesine tıklandığını belirtir. İngilizcesi Retry
5Yoksay düğmesini tıklattığını belirtir. İngilizcesi Ignore 
6Evet düğmesinin tıklandığını belirtir. İngilizcesi Yes 
7Hayı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

 

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

Yazı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.

 


%d blogcu bunu beğendi: