Excel VBA MsgBox (Mesaj Kutusu) - Tüm Bilmeniz Gerekenler!

Excel VBA'da, bir mesaj kutusu görüntülemek için MsgBox işlevini kullanabilirsiniz (aşağıda gösterildiği gibi):

MsgBox, özel bir mesaj göstererek veya bazı temel girdiler (Evet/Hayır veya Tamam/İptal gibi) alarak kullanıcılarınızı bilgilendirmek için kullanabileceğiniz bir iletişim kutusundan başka bir şey değildir.

MsgBox iletişim kutusu görüntülenirken VBA kodunuz durdurulur. Kalan VBA kodunu çalıştırmak için MsgBox'taki düğmelerden herhangi birine tıklamanız gerekir.

Not: Bu eğitimde, mesaj kutusu ve MsgBox kelimelerini birbirinin yerine kullanacağım. Excel VBA ile çalışırken, her zaman kullanmanız gerekir Mesaj Kutusu.

Excel'de bir VBA MsgBox'ın Anatomisi

Bir mesaj kutusunda aşağıdaki kısımlar bulunur:

  1. Başlık: Bu genellikle mesaj kutusunun ne hakkında olduğunu göstermek için kullanılır. Hiçbir şey belirtmezseniz, bu durumda Microsoft Excel olan uygulama adını görüntüler.
  2. Komut istemi: Bu, görüntülemek istediğiniz mesajdır. Bu alanı birkaç satır yazmak veya hatta tabloları/verileri burada görüntülemek için kullanabilirsiniz.
  3. Düğme(ler): Varsayılan düğme Tamam iken, Evet/Hayır, Evet/Hayır/İptal, Yeniden Dene/Yoksay vb. düğmeleri gösterecek şekilde özelleştirebilirsiniz.
  4. Kapat Simgesi: Kapat simgesine tıklayarak mesaj kutusunu kapatabilirsiniz.

VBA MsgBox İşlevinin Sözdizimi

Bahsettiğim gibi MsgBox bir fonksiyondur ve diğer VBA fonksiyonlarına benzer bir sözdizimine sahiptir.

MsgBox( komut istemi [, düğmeler ] [, başlık ] [, yardım dosyası, bağlam ] )

  • Komut istemi - Bu gerekli bir argümandır. MsgBox'ta gördüğünüz mesajı görüntüler. Örneğimizde, “Bu bir örnek MsgBox” metni 'istem'dir. Bilgi isteminde en fazla 1024 karakter kullanabilir ve bunu değişkenlerin değerlerini görüntülemek için de kullanabilirsiniz. Birden çok satırı olan bir bilgi istemi göstermek isterseniz, bunu da yapabilirsiniz (bu eğitimde daha sonra bu konuda daha fazla bilgi bulabilirsiniz).
  • [düğmeler] - MsgBox'ta hangi düğmelerin ve simgelerin görüntüleneceğini belirler. Örneğin, vbOkOnly kullanırsam sadece Tamam düğmesini, vbOKCancel kullanırsam hem Tamam hem de İptal düğmelerini gösterir. Bu eğitimde daha sonra farklı düğme türlerini ele alacağım.
  • [Başlık] - Burada, mesaj iletişim kutusunda hangi başlığı istediğinizi belirleyebilirsiniz. Bu, MsgBox'ın başlık çubuğunda görüntülenir. Hiçbir şey belirtmezseniz, uygulamanın adını gösterecektir.
  • [yardım dosyası] - Bir kullanıcı Yardım düğmesine tıkladığında erişilebilecek bir yardım dosyası belirtebilirsiniz. Yardım düğmesi, yalnızca bunun için düğme kodunu kullandığınızda görünür. Bir yardım dosyası kullanıyorsanız, bağlam bağımsız değişkenini de belirtmeniz gerekir.
  • [bağlam] - Uygun Yardım konusuna atanan Yardım bağlam numarası olan sayısal bir ifadedir.

Msgbox kavramında yeniyseniz, [helpfile] ve [context] argümanlarını görmezden gelmekten çekinmeyin. Bunların kullanıldığını nadiren gördüm.

Not: Köşeli parantez içindeki tüm argümanlar isteğe bağlıdır. Yalnızca 'istem' argümanı zorunludur.

Excel VBA MsgBox Düğme Sabitleri (Örnekler)

Bu bölümde, bir VBA MsgBox ile kullanabileceğiniz farklı düğme türlerini ele alacağım.

Size bunun için VBA kodunu ve MsgBox'ın nasıl göründüğünü göstermeden önce, kullanabileceğiniz tüm farklı düğme sabitlerini listeleyen bir tablo var.

Düğme Sabiti Tanım
vbOKOnly Yalnızca Tamam düğmesini gösterir
vbOKİptal Tamam ve İptal düğmelerini gösterir
vbAbortRetryIgnore Durdur, Yeniden Dene ve Yoksay düğmelerini gösterir
vbYesHayır Evet ve Hayır düğmelerini gösterir
vbYesHayırİptal Evet, Hayır ve İptal düğmelerini gösterir
vbRetryİptal Yeniden Dene ve İptal düğmelerini gösterir
vbMsgBoxHelpButton Yardım düğmesini gösterir. Bunun çalışması için, MsgBox işlevindeki yardım ve bağlam bağımsız değişkenlerini kullanmanız gerekir.
vbDefaultButton1 İlk düğmeyi varsayılan yapar. Varsayılan düğmeyi değiştirmek için numarayı değiştirebilirsiniz. Örneğin, vbDefaultButton2, ikinci düğmeyi varsayılan yapar

Not: Farklı buton oluşturma örneklerini incelerken, kod üzerinde herhangi bir etkisi yoksa bu butonlara sahip olmanın ne anlamı var diye merak edebilirsiniz.

Öyle! Seçime bağlı olarak, kodun ne yapmasını istediğinizi kodlayabilirsiniz. Örneğin, Tamam'ı seçerseniz kod devam etmeli ve İptal'i tıklatırsanız kod durmalıdır. Bu, değişkenler kullanılarak ve Mesaj Kutusunun değerini bir değişkene atayarak yapılabilir. Bunu bu eğitimin sonraki bölümlerinde ele alacağız.

Şimdi farklı düğmelerin bir MsgBox'ta nasıl görüntülenebileceğine ve nasıl göründüğüne dair bazı örneklere bakalım.

MsgBox Düğmeleri - vbOKOnly (Varsayılan)

Yalnızca istemi kullanırsanız ve herhangi bir bağımsız değişken belirtmezseniz, aşağıda gösterildiği gibi varsayılan mesaj kutusunu alırsınız:

Bu mesaj kutusunu verecek kod aşağıdadır:

Sub DefaultMsgBox() MsgBox "Bu bir örnek kutudur" End Sub

Metin dizesinin çift tırnak içinde olması gerektiğini unutmayın.

Ayrıca düğme sabiti vbOKOnly'yi de kullanabilirsiniz, ancak hiçbir şey belirtmeseniz bile varsayılan olarak alınır.

MsgBox Düğmeleri - Tamam ve İptal

Yalnızca Tamam ve İptal düğmesini göstermek istiyorsanız, vbOKCancel sabitini kullanmanız gerekir.

Sub MsgBoxOKCancel() MsgBox "Devam Etmek İstiyor musunuz?", vbOKCancel End Sub

MsgBox Düğmeleri - İptal Et, Yeniden Dene ve Yoksay

Durdur, Yeniden Dene ve Yoksay düğmelerini göstermek için 'vbAbortRetryIgnore' sabitini kullanabilirsiniz.

Sub MsgBoxAbortRetryIgnore() MsgBox "Ne yapmak istiyorsunuz?", vbAbortRetryIgnore End Sub

MsgBox Düğmeleri - Evet ve Hayır

Evet ve Hayır düğmelerini göstermek için 'vbYesNo' sabitini kullanabilirsiniz.

Sub MsgBoxYesNo() MsgBox "Duralım mı?", vbYesNo End Sub

MsgBox Düğmeleri - Evet, Hayır ve İptal

Evet, Hayır ve İptal düğmelerini göstermek için 'vbYesNoCancel' sabitini kullanabilirsiniz.

Sub MsgBoxYesNoCancel() MsgBox "Duralım mı?", vbYesNoCancel End Sub

MsgBox Düğmeleri - Yeniden Dene ve İptal Et

Yeniden Dene ve İptal düğmelerini göstermek için 'vbRetryCancel' sabitini kullanabilirsiniz.

Sub MsgBoxRetryCancel() MsgBox "Daha sonra ne yapmak istiyorsunuz?", vbRetryCancel End Sub

MsgBox Düğmeleri - Yardım Düğmesi

Yardım düğmesini göstermek için 'vbMsgBoxHelpButton' sabitini kullanabilirsiniz. Diğer düğme sabitleri ile kullanabilirsiniz.

Sub MsgBoxRetryHelp() MsgBox "Daha sonra ne yapmak istiyorsunuz?", vbRetryCancel + vbMsgBoxHelpButton End Sub

Bu kodda iki farklı düğme sabitini birleştirdiğimizi unutmayın (vbRetryCancel + vbMsgBoxHelpButton). İlk bölüm Yeniden Dene ve İptal düğmelerini gösterir ve ikinci bölüm Yardım düğmesini gösterir.

MsgBox Düğmeleri - Varsayılan Bir Düğme Ayarlama

İlk düğmeyi varsayılan olarak ayarlamak için 'vbDefaultButton1' sabitini kullanabilirsiniz. Bu, düğmenin zaten seçili olduğu ve enter tuşuna basarsanız o düğmeyi çalıştırdığı anlamına gelir.

İkinci düğmeyi ('Hayır' düğmesi) varsayılan olarak ayarlayacak kod aşağıdadır.

Sub MsgBoxOKCancel() MsgBox "Daha sonra ne yapmak istiyorsunuz?", vbYesNoCancel + vbDefaultButton2 End Sub

Çoğu durumda, en soldaki düğme varsayılan düğmedir. vbDefaultButton2, vbDefaultButton3 ve vbDefaultButton4'ü kullanarak diğer düğmeleri seçebilirsiniz.

Excel VBA MsgBox Simge Sabitleri (Örnekler)

Düğmelerin yanı sıra, MsgBox iletişim kutusunda görüntülenen simgeleri de özelleştirebilirsiniz. Örneğin, kırmızı bir kritik simgeniz veya mavi bir bilgi simgeniz olabilir.

Aşağıda, ilgili simgeyi gösterecek kodu listeleyen bir tablo bulunmaktadır.

Simge Sabiti Tanım
vbKritik Kritik mesaj simgesini gösterir
vbQuestion Soru simgesini gösterir
vbExclamation Uyarı mesajı simgesini gösterir
vbInformation Bilgi simgesini gösterir

MsgBox Simgeleri - Kritik

MsgBox'ınızda kritik bir simge göstermek istiyorsanız, vbCritical sabitini kullanın. Bunu diğer düğme sabitleriyle birlikte kullanabilirsiniz (kodlar arasına + işareti koyarak).

Örneğin, kritik bir simgeyle varsayılan Tamam düğmesini gösterecek bir kod aşağıdadır.

Sub MsgBoxCriticalIcon() MsgBox "Bu bir örnek kutudur", vbCritical End Sub

Evet ve Hayır düğmeleriyle kritik simgeyi göstermek istiyorsanız, aşağıdaki kodu kullanın:

Sub MsgBoxCriticalIcon() MsgBox "Bu bir örnek kutudur", vbYesNo + vbCritical End Sub

MsgBox Simgeleri - Soru

MsgBox'ınızda kritik bir simge göstermek istiyorsanız, vbQuestion sabitini kullanın.

Sub MsgBoxQuestionIcon() MsgBox "Bu bir örnek kutudur", vbYesNo + vbQuestion End Sub

MsgBox Simgeleri - Ünlem

MsgBox'ınızda bir ünlem simgesi göstermek istiyorsanız, vbExclamation sabitini kullanın.

Sub MsgBoxExclamationIcon() MsgBox "Bu bir örnek kutudur", vbYesNo + vbExclamation End Sub

MsgBox Simgeleri - Bilgi

MsgBox'ınızda bir bilgi simgesi göstermek istiyorsanız, vbInformation sabitini kullanın.

Sub MsgBoxInformationIcon() MsgBox "Bu bir örnek kutudur", vbYesNo + vbInformation End Sub

MsgBox'ta Başlığı ve İstemi Özelleştirme

MsgBox kullanırken, başlığı ve istem mesajlarını özelleştirebilirsiniz.

Şimdiye kadar gördüğümüz örnekte başlık olarak Microsoft Excel kullanılmıştır. Başlık bağımsız değişkenini belirtmezseniz, MsgBox otomatik olarak uygulamanın başlığını kullanır (bu durumda Microsoft Excel olmuştur).

Başlığı, aşağıda gösterildiği gibi kodda belirterek özelleştirebilirsiniz:

Sub MsgBoxInformationIcon() MsgBox "Devam etmek istiyor musunuz?", vbYesNo + vbQuestion, "Adım 1/3" End Sub

Benzer şekilde, istem mesajını da özelleştirebilirsiniz.

Ayrıca istem mesajına satır sonları da ekleyebilirsiniz.

Aşağıdaki kodda 'vbNewLine' kullanarak bir satır sonu ekledim.

Sub MsgBoxInformationIcon() MsgBox "Devam etmek istiyor musunuz?" & vbNewLine & "Devam etmek için Evet'i tıklayın", vbYesNo + vbQuestion, "Adım 1/3" End Sub

Komut mesajına yeni bir satır eklemek için satır başı karakteri - Chr(13) - veya satır besleme - Chr(10) öğesini de kullanabilirsiniz.

Başlığa değil, yalnızca istem mesajına yeni bir satır ekleyebileceğinizi unutmayın.

Değişkene MsgBox Değeri Atama

Şimdiye kadar, mesaj kutuları oluşturduğumuz ve düğmeleri, simgeleri, başlığı ve istemi özelleştirdiğimiz örnekleri gördük.

Ancak, bir düğmeye tıklamak hiçbir şey yapmadı.

Excel'deki MsgBox işleviyle, bir kullanıcı belirli bir düğmeyi tıkladığında ne yapmak istediğinize karar verebilirsiniz. Ve bu, her düğmenin kendisiyle ilişkilendirilmiş bir değeri olduğu için mümkündür.

Evet düğmesine tıklarsam, MsgBox işlevi kodumda kullanabileceğim bir değer (6 veya sabit vbYes) döndürür. Benzer şekilde, kullanıcı Hayır düğmesini seçerse, kodda kullanabileceğim farklı bir değer ((7 veya sabit vbNo)) döndürür.

Aşağıda, MsgBox işlevi tarafından döndürülen tam değerleri ve sabiti gösteren bir tablo bulunmaktadır. Bunları ezberlemenize gerek yok, sadece farkında olun ve kullanımı daha kolay olan sabitleri kullanabilirsiniz.

Düğme Tıklandı Devamlı Değer
Tamam vbOk 1
İptal vbİptal 2
iptal vbAbort 3
yeniden dene vbRetry 4
Aldırmamak vbIgnore 5
Evet vbYes 6
Numara vbNo 7

Şimdi, kullanıcının hangi düğmeyi tıkladığına bağlı olarak VBA makro kodunu nasıl kontrol edebileceğimizi görelim.

Aşağıdaki kodda, kullanıcı Evet'e tıklarsa “Evet'i tıkladınız”, kullanıcı Hayır'a tıklarsa “Hayır'a tıkladınız” mesajı görüntülenir.

Sub MsgBoxInformationIcon() Result = MsgBox("Devam etmek istiyor musunuz?", vbYesNo + vbQuestion) If Result = vbYes Then MsgBox "Evet'i tıkladınız" Diğer: MsgBox "Hayır'ı tıkladınız" End If End Sub

Yukarıdaki kodda Result değişkenine MsgBox fonksiyonunun değerini atadım. Evet düğmesini tıklattığınızda, Sonuç değişkeni vbYes sabitini (veya 6 sayısını) alır ve Hayır'ı tıklattığınızda, Sonuç değişkeni vbNo sabitini (veya 7 sayısını) alır.

Sonra Result değişkeninin vbYes değerini tutup tutmadığını kontrol etmek için If Then Else yapısını kullandım. Varsa, "Evet'i tıkladınız" istemini gösterir, aksi takdirde "Hayır'ı tıkladınız" gösterir.

Bir kullanıcı Evet'i tıkladığında bir kodu çalıştırmak için aynı konsepti kullanabilir ve Hayır'ı tıkladığında alttan çıkabilirsiniz.

Not: MsgBox çıktısını bir değişkene atadığınızda, MsgBox işlevinin argümanlarını parantez içine almanız gerekir. Örneğin, satırda Sonuç = MsgBox(“Devam etmek istiyor musunuz?”, vbYesNo + vbQuestion), argümanların parantez içinde olduğunu görebilirsiniz.

Mesaj Kutusu işlevini daha ayrıntılı incelemek isterseniz, bununla ilgili resmi belge burada.

Aşağıdaki Excel VBA Eğitimlerini de Beğenebilirsiniz:

  • Excel VBA Bölme İşlevi.
  • Excel VBA InStr İşlevi.
  • Excel VBA'da Hücreler ve Aralıklarla Çalışma.
  • VBA'da Çalışma Sayfalarıyla Çalışmak.
  • VBA'da Çalışma Kitaplarıyla Çalışmak.
  • Excel VBA'da Döngüleri Kullanma.
  • Excel VBA Veri Türlerini (Değişkenler ve Sabitler) Anlama
  • Excel'de Kişisel Makro Çalışma Kitabı Nasıl Oluşturulur ve Kullanılır.
  • Faydalı Excel Makro Kodu Örnekleri.
  • Excel VBA'da Sonraki Döngü İçin Kullanma.
  • Excel VBA Etkinlikleri - Kolay (ve Eksiksiz) Bir Kılavuz.
  • Excel'de Makro Nasıl Çalıştırılır - Adım Adım Tam Bir Kılavuz.
  • Excel Eklentisi Nasıl Oluşturulur ve Kullanılır.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave