VBA MsgBox (Ya / Tidak)

Excel VBA MsgBox (Ya / Tidak)

Di VBA , dengan menggunakan kotak pesan kita dapat membuat kotak pesan ya tidak yang digunakan untuk merekam input pengguna berdasarkan klik pada ya atau tidak, sintaks untuk membuat kotak pesan ya tidak adalah sebagai berikut variabel = MsgBox ("Teks", vbQuestion + vbYesNo + vbDefaultButton2, “Judul Kotak Pesan”) di mana variabel harus dideklarasikan sebagai integer.

Seringkali dalam pengkodean VBA, kita perlu mengumpulkan nilai input dari pengguna untuk melakukan beberapa tugas dan salah satu tugas tersebut untuk mengumpulkan respons Ya atau Tidak dari pengguna. Dengan menggunakan metode VBA MsgBox Yes No kita dapat menulis kode untuk melanjutkan lebih jauh dalam kode.

Dalam situasi tertentu kami mungkin perlu menampilkan opsi Ya atau Tidak di depan pengguna untuk memberikan respons mereka dan berdasarkan respons tersebut kami sebenarnya dapat menjalankan kode VBA.

Misalnya, lihat gambar di bawah ini dari MsgBox di VBA.

Jika pengguna berkata Ya "kita dapat menulis kode untuk melakukan tugas tertentu" dan jika pengguna berkata "Tidak" kita dapat menulis kode untuk melakukan serangkaian tugas lain.

Bagaimana Cara Bekerja dengan Tanggapan Ya / Tidak MsgBox?

Anda dapat mengunduh Kotak Pesan VBA Ya atau Tidak Template Excel di sini - Kotak Pesan VBA Ya atau Tidak Template Excel

Contoh # 1 - Salin dan Tempel berdasarkan Tanggapan

Misalnya, lihat kode di bawah ini.

Kode:

 Sub MessageBox_Yes_NO_Example1 () Redupkan JawabanYa Sebagai String Redup AnswerTidak Sebagai String AnswerYes = MsgBox ("Apakah Anda Ingin Menyalin?", VbQuestion + vbYesNo, "User Repsonse") Jika AnswerYes = vbYes Then Range ("A1: A2"). Salin Rentang ("C1") Rentang Lain ("A1: A2"). Rentang Salinan ("E1") Akhiri Jika Akhiri Sub 

Penjelasan:

Di atas telah mendeklarasikan variabel sebagai String ie

 Redupkan Jawaban Ya Sebagai String 

Di baris berikutnya, kami telah menetapkan nilai melalui kotak pesan yang menanyakan "Apakah Anda ingin menyalin?".

AnswerYes = MsgBox ("Apakah Anda Ingin Menyalin?", VbQuestion + vbYesNo, "User Repsonse")

Sekarang pernyataan IF mengevaluasi respons yang diberikan melalui kotak pesan. Jika hasil kotak pesan adalah vbYa maka itu akan menyalin rentang A1 ke A2 dan menempel di sel C1.

   Jika AnswerYes = vbYes Then Range ("A1: A2"). Salin Range ("C1")

Jika respons yang diberikan oleh kotak pesan adalah Tidak maka itu akan menyalin rentang A1 ke A2 dan menempel di sel E1.

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

Oke, saya telah memasukkan beberapa nilai di sel A1 dan A2 sekarang.

Sekarang saya akan menjalankan kode menggunakan tombol F5 atau melalui opsi run, kotak pesan akan muncul di depan saya dan meminta tanggapan saya.

Jika saya mengklik Ya, itu akan menyalin rentang A1 ke A2 dan menempel di sel C1. Sekarang saya akan mengklik Yes dan melihat hasilnya.

Jadi telah melakukan tugas yang diberikan jika jawabannya YA.

Sekarang lagi saya akan menjalankan kode.

Kali ini saya akan memilih Tidak dan melihat apa yang terjadi.

Ya itu melakukan tugas yang diberikan dalam kode yaitu

 Rentang Lain ("A1: A2"). Rentang Salinan ("E1")

Contoh # 2 - Sembunyikan & Perlihatkan Lembar Berdasarkan Tanggapan

Kode di bawah ini akan menyembunyikan semua lembar kecuali lembar aktif jika jawabannya ya.

Kode:

 Sub HideAll () Redupkan Jawaban Sebagai String Redupkan Ws Sebagai Lembar Kerja Answer = MsgBox ("Apakah Anda Ingin Menyembunyikan Semua?", VbQuestion + vbYesNo, "Sembunyikan") Jika Answer = vbYes Kemudian Untuk Setiap Ws Di ActiveWorkbook.Worksheets Jika Ws.Name ActiveSheet.Name Lalu Ws.Visible = xlSheetVeryHidden Berikutnya Ws ElseIf Answer = vbNo Then MsgBox "Anda telah memilih untuk tidak menyembunyikan sheet", vbInformation, "No Hide" End If End Sub 

Kode di atas akan menyembunyikan semua lembar kerja kecuali lembar yang kita masuki sekarang jika respon dari kotak pesan adalah YA.

Jika respon dari kotak pesan adalah TIDAK maka akan muncul kotak pesan yang mengatakan "Anda telah memilih untuk tidak menyembunyikan lembar".

Demikian pula, kode di bawah ini akan menampilkan sheet jika jawabannya Ya.

Kode:

 Sub UnHideAll () Redupkan Jawaban Sebagai String Dim Ws Sebagai Lembar Kerja Answer = MsgBox ("Apakah Anda Ingin Menampilkan Semua?", VbQuestion + vbYesNo, "Sembunyikan") Jika Answer = vbYes Kemudian Untuk Setiap Ws Di ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Berikutnya Ws ElseIf Jawaban = vbTidak Kemudian MsgBox "Anda telah memilih untuk tidak Menampilkan lembar", vbInformation, "No Hide" End If End Sub 

Ini berfungsi persis sama dengan kode lembar sembunyikan, jika ya itu akan muncul, jika tidak itu tidak akan muncul.