調べたいExcel-VBAの使用例などキーワードを入力してください

メッセージボックスではいといいえを選択させる方法

exce-vbaコマンドボタン
スポンサーリンク

〇○しますか?と聞いて「はい」「いいえ」で処理を振り分けたいことありませんか

エクセル住所録で住所変更などする時に、メッセージなしでコマンドボタン押せば上書き保存されるようにしていますが、使う側からすると変更されたかどうかわかりにくいですよね。

これが、押した瞬間に「データ修正しますか?」メッセージが表示され「はい」を選べば、「修正完了しました」って再度表示されると安心感ありますよね。

もちろん「いいえ」を選べば、「修正中止します」というメッセージが出せれば親切ですよね。

スポンサーリンク

VBAメッセージ表示機能

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

メッセージの表示もいくつかパターンがあるので、基本的なところからおさらいしましょう。

メッセージのみ表示する

エクセルを使っている人に処理を選択させることの必要がなく、ただ単にメッセージだけを表示する場合は下記の通り記述するだけです。

メッセージ表示

Private Sub CommandButton1_Click()
MsgBox “メッセージ表示”
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 「メッセージ表示」をする
  3. マクロ記録終了

これでユーザーフォーム(UserForm1)のコマンドボタン(CommandButton1)を押すと「メッセージ表示」という画面が表示されます。

メッセージボックス表示
OKボタンが押せるだけです。

画面が出たら、OKボタンが押せるだけなので、お知らせって感じですね。

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

ついでにと言ったらなんですが、メッセージは1行限定ってことはありません。

メッセージを2行・3行と改行して表示する

メッセージを改行して表示したいとあんまり思わないかな?でも可能なので書いてみました。

改行の方法は「1行目メッセージ」「2行目メッセージ」の間に【 & vbCrLf & 】を入れるだけですが、【&】の両サイドは半角スペースが空いていますよ!

メッセージ改行(2行)

Private Sub CommandButton1_Click()
MsgBox “エクセルを学ぼう” & vbCrLf & “Excel-VBA”
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 1行目に「エクセルを学ぼう」2行目に「Excel-VBA」と表示する
  3. マクロ記録終了
メッセージ改行(3行)

Private Sub CommandButton1_Click()
MsgBox “エクセルを学ぼう” & vbCrLf & “Excel-VBA” & vbCrLf & “byとりっぷぼうる”
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 1行目に「エクセルを学ぼう」2行目に「Excel-VBA」3行目に「byとりっぷぼうる」と表示する
  3. マクロ記録終了

とても簡単にできますので、遊び心で使ったら面白いかもしれませんね。

スポンサーリンク

メッセージで「はい」「いいえ」で処理を振り分ける

実際にはメッセージを表示して「はい」と「いいえ」で処理を振り分けることのできるメッセージを使うことが多いです。

ここでは、オリジナル入力フォームを作成して、配置したコマンドボタンにVBAコードを書いた例になっていますので、ユーザーフォームについては下記をご覧くださいませ。

「はい」「いいえ」で処理を振り分けるメッセージ

Private Sub CommandButton1_Click()
msg = MsgBox(“印刷しますか?”, Buttons:=vbYesNo)
If msg = vbYes Then
MsgBox”はいを押したね”
Else
MsgBox”いいえをおしたね”
End If
End Sub

VBA解説
  1. コマンドボタン1をクリックしたら
  2. 「はい」「いいえ」を選択させるメッセージで「印刷しますか?」と表示する
  3. もし「はい」が押されたら
  4. 「はいを押したね」と表示する
  5. そうでなかったら(いいえを押したら)
  6. 「いいえをおしたね」と表示する
  7. IFステートメント終了
  8. マクロ記録終了

まあ、実際にこんな使い方はしませんが、「はい」を押したら「はいを押したね」って言われ、「いいえ」を押すと「いいえをおしたね」って答えてくれます。

はいといいえのメッセージボックス
スポンサーリンク

メッセージボックスで使える表示

上記のButtons:=vbYesNoの部分は、ボタンの種類を指定しているので、ここでは「vbYesNo」としているので「はい」「いいえ」と表示されています。

「vbYesNo」部分を変更することで表示を変えることができます。

「はい」・「いいえ」

 

定数(vbYesNo)

はいといいえのメッセージボックス
「OK」・「キャンセル」

 

定数(vbOKCancel)

「再試行」・「キャンセル」

 

定数(vbRetryCancel)

「はい」・「いいえ」・「キャンセル」

 

定数(vbYesNoCancel)

メッセージにアイコンをつける

コードは下記の通りです。

MsgBox “印刷しますか?”, Buttons:=vbYesNo + vbInformation

一番右の+ vbInformationの部分を変更するとお好きなマークにできます。

警告アイコン

 

定数(vbCritical)

問い合わせアイコン

 

定数(vbQuestion)

注意アイコン

 

定数(vbExclamation)

情報アイコン

 

定数(vbInfomation)

メッセージボックスの画面左上のタイトルを変更する

メッセージ本文以外に「Microsoft Excel」と常に表示されているタイトルも変更可能です。

基本的なメッセージの後に、【,,”タイトル”】を付け足すだけですよ!

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる
  • 本文「印刷しますか?」
  • タイトル「とりっぷぼうる」

このようにメッセージボックスに表示させるVBAコードは下記の通りです。

メッセージボックスのタイトルを変更

Private Sub CommandButton3_Click()
MsgBox “印刷しますか?”, , “とりっぷぼうる”
End Sub

とっても簡単でしょ!ただし、「はい」「いいえ」の選択のメッセージではエラーになりました。

スポンサーリンク

メッセージ機能を応用しよう

セルの値を反映させてメッセージを表示する

メッセージ機能の応用として、表示させるメッセージを臨機応変に変更したいと思いませんか?

セルの値を反映させて表示出来れば、順位が変化する成績トップの名前を表示することも可能になります。

工夫次第で自分好みのメッセージを表示させることも可能ですよ。

「はい」「いいえ」を選択しないと先へ進めない

このように「はい」「いいえ」で処理ができるようになったら、意図しない操作でユーザーフォームを閉じられたりしたら予定していた操作の流れが途絶えてしまいます。

それを防ぐには×ボタンを使えなくしてしまえば解決です!

そうすると、かならず「はい」「いいえ」を押さなければ次に進めなくなるので安心ですよ!

「はい」「いいえ」で処理を振り分けるIF~Then

もし~だったら○○、そうでなかったら××。

これをマスターしなくてはVBAを使いこなすことはできませんので、1つの条件や複数条件、答えも複数など、テストの5段階評価や重複チェックなど使い道はたくさんありますのでぜひマスターしてください。

ボタン1つで作業完了へ
ちょっとの工夫でエクセル作業が飛躍的に早く終わったらいいなあ~と思いませんか? 面倒くさい作業よ!さようなら!

スポンサーリンク


コマンドボタン
参考になりましたらシェア宜しくお願い致します

山頂テラスデッキからの三段紅葉(2019年11月)

フリーパスって助成金つぎ込んでいいの?

コロナ禍のGo To トラベル以外にも助成金だらけでうらやましいね。

安くなったフリーパスで遊びに行きたいけど、給与も減って余裕ないよね。

Excel VBA