VBA MsgBox Evet / Hayır - Evet / Hayır Yanıtı Nasıl Oluşturulur?

Excel VBA MsgBox (Evet / Hayır)

In VBA , mesaj kutusunu kullanarak bir oluşturabilir hiçbir msgbox evet ya hayır, sözdizimi hiçbir mesaj kutusu gibidir değişken = MsgBox ( “Metin” şöyle bir evet yapılması için evet tıklama dayalı kayıt kullanıcı girişi için kullanılır vbQuestion + vbYesNo + vbDefaultButton2, "Mesaj Kutusu Başlığı") burada değişkenin bir tamsayı olarak bildirilmesi gerekir.

Genellikle VBA kodlamasında, kullanıcılardan Evet veya Hayır yanıtını toplamak için bazı görevleri ve bu tür görevlerden birini gerçekleştirmek için kullanıcılardan girdi değerlerini toplamamız gerekir. VBA MsgBox Yes No yöntemini kullanarak, kodda ilerlemek için kodu yazabiliriz.

Bazı durumlarda, yanıtını vermek için kullanıcının önünde ve bu yanıta göre bir Evet veya Hayır seçeneği sunmamız gerekebilir. Aslında VBA kodunu çalıştırabiliriz.

Örneğin, VBA'da MsgBox'ın aşağıdaki görüntüsüne bakın.

Kullanıcı Evet diyorsa, "belirli bir görevi gerçekleştirmek için kod yazabiliriz" ve kullanıcı "Hayır" derse, başka bir dizi görevi gerçekleştirmek için kod yazabiliriz.

MsgBox ile Nasıl Çalışılır Evet / Hayır Yanıt?

Örnek 1 - Yanıta Göre Kopyala ve Yapıştır

Örneğin, aşağıdaki koda bakın.

Kod:

Alt MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Kopyalamak İstiyor musunuz?", VbQuestion + vbYesNo, "Kullanıcı Yanıtı") Eğer AnswerYes = vbYes Sonra Aralık ("A1: A2"). ("C1") Diğer Aralık ("A1: A2"). Kopyalama Aralığı ("E1") End If End Sub

Açıklama:

Yukarıdakiler değişkeni String yani

Soluk Cevap Evet Dize Olarak

Bir sonraki satırda, "Kopyalamak istiyor musunuz?" Diye soran bir mesaj kutusu aracılığıyla değeri atadık.

AnswerYes = MsgBox ("Kopyalamak İstiyor musunuz?", VbQuestion + vbYesNo, "Kullanıcı Yanıtı")

Şimdi IF ifadesi, mesaj kutusu aracılığıyla verilen yanıtı değerlendirir. İleti kutusu sonucu vbYes ise, A1 aralığını A2'ye kopyalar ve C1 hücresine yapıştırır.

 Yanıt Evet = vbYes Sonra Aralık ("A1: A2"). Kopyalama Aralığı ("C1")

Mesaj kutusunun verdiği yanıt Hayır ise, A1 aralığını A2'ye kopyalayıp E1 hücresine yapıştıracaktır.

Else Range ("A1: A2"). Copy Range ("E1") End If

Tamam, şimdi A1 ve A2 hücrelerine birkaç değer girdim.

Şimdi kodu F5 tuşunu kullanarak çalıştıracağım ya da çalıştır seçeneği ile önümde bir mesaj kutusu belirecek ve cevabımı soracak.

Evet'e tıklarsam, A1 aralığını A2'ye kopyalayacak ve C1 hücresine yapıştıracaktır. Şimdi Evet'e tıklayıp sonucu göreceğim.

Yani cevap EVET ise kendisine verilen görevi yerine getirmiştir.

Şimdi tekrar kodu çalıştıracağım.

Bu sefer Hayır'ı seçeceğim ve ne olacağını göreceğim.

Evet, kodda atanan görevi gerçekleştirdi yani

Diğer Aralık ("A1: A2"). Kopyalama Aralığı ("E1")

Örnek 2 - Yanıta Göre Sayfaları Gizleme ve Gösterme

Yanıt evet ise, aşağıdaki kod aktif sayfa dışındaki tüm sayfaları gizleyecektir.

Kod:

Alt HideAll () Sol Yanıtı Dize Olarak Sönük Çalışma Sayfası Olarak Cevap = MsgBox ("Tümünü Gizlemek İstiyor musunuz?", VbQuestion + vbYesNo, "Gizle") If Answer = vbYes Sonra ActiveWorkbook.Worksheets Her Ws İçin Ws.Name ActiveSheet.Name Sonra Ws.Visible = xlSheetVeryHidden Sonraki Ws ElseIf Answer = vbNo Sonra MsgBox "Sayfaları gizlememeyi seçtiniz", vbInformation, "Gizleme Yok" End If End Sub

Yukarıdaki kod, mesaj kutusundan gelen yanıt EVET ise, şu anda içinde bulunduğumuz sayfa dışındaki tüm çalışma sayfalarını gizleyecektir.

Mesaj kutusundan gelen yanıt HAYIR ise, "Sayfaları gizlememeyi seçtiniz" diyen mesaj kutusu görüntülenir .

Benzer şekilde, yanıt Evet ise aşağıdaki kod sayfayı gösterecektir.

Kod:

Sub UnHideAll () Soluk Cevap Dize Dim Ws As Worksheet Answer = MsgBox ("Tümünü Göstermek İstiyor musunuz?", VbQuestion + vbYesNo, "Gizle") If Answer = vbYes Sonra ActiveWorkbook.Worksheets'te Her Ws İçin Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Sayfaları Göstermemeyi seçtiniz", vbInformation, "Gizleme Yok" End If End Sub

Bu, gizleme sayfası koduyla tamamen aynı şekilde çalışır; eğer evet ise, gizlenecektir. Hayır ise, gizlenmeyecektir.

Ilginç makaleler...