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

exce-vbaコマンドボタン
セルの値をメッセージに反映する

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

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

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

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

スポンサーリンク

VBAメッセージ表示機能

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

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

メッセージのみ表示する

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

メッセージ表示

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

これでユーザーフォーム(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

メッセージ改行(3行)

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

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

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

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

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

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

はいといいえのメッセージボックス

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

上記の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

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

参考までに、メッセージにはセルの値をリンクさせて表示させたり、組み合わせたりして表示できるようになってて、工夫次第で自分好みのメッセージを表示させることも可能ですよ。

タイトルとURLをコピーしました