セルの値をメッセージボックスに表示

exce-vba VBA

メッセージを表示する時にセルの値と組み合わせて表示出来たら便利だと思いませんか

エクセル住所録で住所変更した時に「MsgBox”データ変更しますか?”」とVBAコードを書いてもいいのですが、どうせならば「Aさんの住所録を変更しますか?」って表示出来たら分かりやすいですよね。

このAさんの部分をセルの値とリンクさせることができれば、セルの値が変わる度にメッセージ表示も変化してくれますので、リンクできるようにVBAコードを書いてみましょう。

スポンサーリンク

MsgBox形式ではなくmsg = MsgBox形式を使う

VBAでメッセージを表示するだけならば、シンプルなMsgBox形式を使うのが基本ですが、下記のようなメッセージ機能をカスタマイズするにはmsg = MsgBox形式ではないとVBAエラーになります。

  • 「はい」「いいえ」を選択させる
  • アイコンを付け加える
  • Microsoft Excel部分タイトルを変更する

これらのメッセージ機能設定方法はここでは省略しますので、下記をご覧くださいませ。

msg = MsgBox形式基本

メッセージ表示

Private Sub CommandButton1_Click()
msg = MsgBox(【Close】ボタンを使用してください)
End Sub

ユーザーフォーム×ボタン停止
基本形のmsg = MsgBox

この例は、ユーザーフォームに配置したコマンドボタンを押したら、メッセージが表示される基本形でユーザーフォームの×ボタンを使えなくした時に、×ボタンが押されたら表示するようにしています。

メッセージ=セルの値

では次に、メッセージは指定したセルの値を常に表示させるようにします。

msg=MsgBoxはセルの値を取得表示

Private Sub CommandButton1_Click()
msg = MsgBox(Range(“A1”))
End Sub

()内をセルA1と書くだけでメッセージがセルから取得して表示できるようになります。

msg=MsgBoxセルの値
セルA1の値が表示される

メッセージ=セルの値+メッセージ

セルの値だけだではなく基本メッセージと組み合わせてより実用的にしましょう。

セルの値+メッセージ

Private Sub CommandButton1_Click()
msg = MsgBox(Range(“A1”) & “さん”)
End Sub

msg=MsgBoxセルの値+メッセージ
A1セルの値+メッセージ

&”さん”】と付け加えるだけでセルA1+さんになり「佐藤さん」と表示できます。

セルの値+メッセージ+セルの値+メッセージ

実際このような並びで、「〇〇さんの点数は△△です」という使い方が一番多いので、ご紹介します。

実践的な使用例

Private Sub CommandButton1_Click()
msg = MsgBox(Range(“A1”) & “さんの点数は” & Range(“B1”) & “点です”)
End Sub

セル+メッセージを2つ並べる
セル+メッセージを2つ並べる

この方がより実用的だと思いませんか?メッセージとしては分かりやすいですよね。

セルの値+セルの値

もちろん、こんな使い方もできるんですよ!って書きながら、1回しか使ったことないのですけどね。

セル+セルのメッセージ

Private Sub CommandButton1_Click()
MsgBox Range(“A1”).Value & Range(“B1”).Value
End Sub

これで、セルの値+メッセージの組み合わせやセル+セルなどいろいろできますが、更に「はい」「いいえ」を選択させたりすることも可能なので、試してみてくださいね。