企業研修講師派遣のBESTグループ
出張パソコン教室ITスクール
webコンサルティングスクール
パソコンの家庭教師BEST

Home Excel(エクセル) ポップアップでメッセージを表示する。

Q.このブログを見ながらいろいろなファイルに便利なマクロ機能を付けたりしています。それで人に使ってもうらうようにマクロ入りブックを作って渡しているのですが、操作したり入力したりしたときに、エラーや間違いの入力に対してメッセージを表示したいと思っています。Excelのシート上のどこかのセルに表示することはできますが、保存したときにその文字も一緒に保存されてしまうので、できればポップアップメッセージにしたいのですが。

A.このような場合には、MsgBox(MessageBoxの略)という関数が用意されています。こちらの説明を致しましょう。

まずは実物を見て頂いた方が良いかも知れません。シート上にボタンを貼り付け、このプロシージャに以下のコードを記述して下さい(ボタン名は「ボタン1」とします)※。これがどのような処理を行うか想像できますか。

※補足:「開発」タブで「デザインモード」を選択した後、「挿入」からボタンのアイコンを選ぶ。シート上に配置したら「マクロの登録」が自動的に表示されるので、そこから「ボタン1_Click()」を選択する。

Sub ボタン1_Click()
If Cells(1, 1).Value > 130 Then
MsgBox (“年齢は130歳までで入力して下さい”)
End If
End Sub

マクロを作ったことのある方ならだいたいおわかりでしょう。A1セルで入力した数字(これは年齢を想定)をチェックする関数であり、If文で130を超える入力があった場合は、メッセージボックスを表示します。どのように表示されるかは、試してみて下さい。

さて、ここまでで単純な文章の表示はできます。次はちょっと応用してみましょう。
まずは、改行を入れる場合です。メッセージボックスで2行表示するためには、 vbcr という定数を使います。早速、見てみましょう。

Sub ボタン1_Click()
Dim limit As Integer
limit = 130
If Cells(1, 1).Value > limit Then
MsgBox (“年齢が上限値を超えています。” & vbCr & “年齢は” & limit & “歳までで入力して下さい”)
End If
End Sub

“”でくくられた文字列を vbcr で連結(&)すれば良いですね。もう一つ工夫したのが分かって頂けましたか?
今回のご紹介とは直接関係はありませんが、上限値チェックと表示の値(年齢)を、変数 limit で同じ値で参照するようにしました。
こうすれば、年齢の上限値を変更する際に、変更箇所が1箇所で済むので、「保守性」が高まりますね。
このような観点にも注意して、マクロ開発をして頂ければと思います。

ご質問や感想は上記からコメントをお願い致します

返信を残す