GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

メッセージボックスの便利な使い方

2009-11-09 14:22:49 | マクロ作成のコツ


―――――――――――――――――――――――――――――――――――
◆今日の講座
―――――――――――――――――――――――――――――――――――


┏━━▼ Lesson 138      --- 特集 ---

┃   ・メッセージボックスの便利な使い方

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━▲


今回は、特集ということでメッセージボックスの色々便利な使い方について
学んでみたいと思います。



1)
ではまず、いつものようにマクロの記録で簡単なプログラム作りから
やっていきます。
――――――――――――――――――――――――――――+
1.エクセルを起動させます。(空のエクセルを立ち上げてください)

2.まずは、マクロの記録を開始します。
 [ツール(T)] → [マクロ(M)] → [●新しいマクロの記録(R)...]
 → マクロの記録画面が出るのでそのまま[OK]をクリック。

3.ここで、キーボードの[Delete]キーを1回押してください。

4.[ツール(T)] → [マクロ(M)] → [■記録終了(R)]とやって、
 マクロの記録を終了させます。
――――――――――――――――――――――――――――+



2)
では、いま作ったプログラムの中身をのぞいてみましょう。
――――――――――――――――――――――――――――+
1.まず、いつもの様にプログラム用の画面を表示させます。
 [ツール(T)] → [マクロ(M)] → [Visual Basic Editor(V)]

2.この画面の左上半分の[+標準モジュール]という所の+の部分を
 クリックすると、そのすぐ下に[Module1]と表示されるので、その
 [Module1]をダブルクリックします。
――――――――――――――――――――――――――――+


++++++++++++++++++++++++++++―
Sub Macro1()
'
  Selection.ClearContents
End Sub
++++++++++++++++++++++++++++―


これは、いま「マクロの記録」で作った(選択されているセルの)データを
削除するという実質1行だけのマクロです。



3)
それでは、このプログラムにちょっと手を加えていきます。
――――――――――――――――――――――――――――+
1.まず、この1行
  Selection.ClearContents
 の行の上に
  MsgBox("このデータを削除します。")
 という1行を追加します。
――――――――――――――――――――――――――――+


修正した後のプログラムは下記の様になります。


++++++++++++++++++++++++++++―
Sub Macro1()
'
  MsgBox("このデータを削除します。")
  Selection.ClearContents
End Sub
++++++++++++++++++++++++++++―




4)
それでは、実行してみましょう。
――――――――――――――――――――――――――――+
1.エクセルの画面に戻って、

2.まず、A2のセルに aaa と入力してください。

3.入力したら、そのA2のセルをクリックして選択します。

4.では、実行します。
 [ツール(T)] → [マクロ(M)] → [マクロ(M)...] → マクロ画面が
 出るので、そのまま[実行]をクリック。
――――――――――――――――――――――――――――+


この結果、「このデータを削除します。」と表示されたポップアップ画面
(メッセージボックス)が出て、その画面の[OK]ボタンを押すとA2のセルに
入力した aaa というデータが削除されればOKということになります。

と、まぁここまでは至って初歩的な話であるわけですが、このようにデータを
削除するようなマクロ処理の場合、誤って実行させてしまった時のために、本
当に削除してもいいのか否か?というのを一度確認をしてほしいわけですね。



5)
それでは、このプログラムにちょっと手を加えます。
――――――――――――――――――――――――――――+
1.プログラムの画面に戻って、先ほど追加した
  MsgBox("このデータを削除します。")
 という行を、下記に書き改めてください。

  m = MsgBox("このデータを削除します。よろしいですか?", vbOKCancel)

2.次に、その下の
  Selection.ClearContents
 という行を、下記のIF文で挟み込んで

  If m = 1 Then
    Selection.ClearContents
  End If

 としてください。
――――――――――――――――――――――――――――+


修正した後のプログラムは下記の様になります。


++++++++++++++++++++++++++++―
Sub Macro1()
'
  m = MsgBox("このデータを削除します。よろしいですか?", vbOKCancel)
  If m = 1 Then
    Selection.ClearContents
  End If
End Sub
++++++++++++++++++++++++++++―


いま、1.で修正した行に出てきた vbOKCancel というものなんですが、これは
「メッセージボックスに[OK] と [キャンセル] の2つのボタンを表示させる」
というためのオプションです。(これまでのように、特にこのオプションを
指定しなかった場合のデフォルト時は、[OK] ボタンのみが表示されます。)

ちなみに、vbOKCancel というオプションは数字でも表すことができ、
vbOKCancel = 1 になりますので、
m = MsgBox("このデータを削除します。よろしいですか?", vbOKCancel)
は、
m = MsgBox("このデータを削除します。よろしいですか?", 1)
と書いてもまったく同じ意味になります。



6)
それでは、再び実行してみましょう。
――――――――――――――――――――――――――――+
1.エクセルの画面に戻って、

2.まず、B1のセルに bbb と入力してください。

3.入力したら、そのB1のセルをクリックして選択します。

4.では、実行します。
 [ツール(T)] → [マクロ(M)] → [マクロ(M)...] → マクロ画面が
 出るので、そのまま[実行]をクリック。

5.表示されたボップアップ画面の「キャンセル」の方のボタンをクリック。

6.もう一度、実行します。
 [ツール(T)] → [マクロ(M)] → [マクロ(M)...] → マクロ画面が
 出るので、そのまま[実行]をクリック。

7.表示されたボップアップ画面の「OK」のボタンをクリック。
――――――――――――――――――――――――――――+


これで(MsgBoxにオプションを加えることで)、実行した処理をキャンセル
することもできるマクロとなったことが確認できたことと思います。


なお、このオプションにはいまやった[OK] ボタンと [キャンセル] ボタン
を表示するという vbOKCancel(数字では 1 )以外にも、
[はい] ボタンと [いいえ] ボタンを表示する vbYesNo(数字では 4 )や
[はい]、[いいえ]、および [キャンセル] の 3 つのボタンを表示する
vbYesNoCancel(数字では 3 )などもあります。

(プログラムが表示されている画面のヘルプにて、「MsgBox 関数」で調べ
てみると全てが載っていますので、興味のある方は詳しくはヘルプ画面の
説明を見てください。)



7)
では、再びこのプログラムにちょっと手を加えます。
――――――――――――――――――――――――――――+
1.プログラムの画面に戻って、先ほど修正した
  m = MsgBox("このデータを削除します。よろしいですか?", vbOKCancel)
 という行を、下記に書き改めてください。

  m = MsgBox("本当にいいの?", vbOKCancel + vbCritical ,"よ~く確認して!!")

――――――――――――――――――――――――――――+


修正した後のプログラムは下記の様になります。


++++++++++++++++++++++++++++―
Sub Macro1()
'
  m = MsgBox("本当にいいの?", vbOKCancel + vbCritical ,"よ~く確認して!!")
  If m = 1 Then
    Selection.ClearContents
  End If
End Sub
++++++++++++++++++++++++++++―


この vbCritical(数字では 16 )は、警告メッセージを表示させるための
オプションです。すなわち、先ほどの vbOKCancel と合せて

vbOKCancel + vbCritical ←このように指定すると、

[OK] ボタンと [キャンセル] ボタンの付いた警告メッセージのポップアップ
画面を表示するという意味になります。


その後の "よ~く確認して!!" というのは、そのポップアップ画面の
タイトルバーに表示する文字列を定義しています。(この指定によって
自分で自由に表示される画面のタイトルが付けられるということです。)



8)
それでは、再び実行してみましょう。
――――――――――――――――――――――――――――+
1.エクセルの画面に戻って、

(※注意)
以下の実行時には警告音が出ます。(ご注意の上、実行してください。)

2.では、実行します。
 [ツール(T)] → [マクロ(M)] → [マクロ(M)...] → マクロ画面が
 出るので、そのまま[実行]をクリック。
――――――――――――――――――――――――――――+


これで、[OK] と [キャンセル] の2つのボタンと、警告を示す赤い[×]印の
アイコンが(音が出るPCでは警告音と共に)表示され、その警告画面上方の
タイトルバーが「よ~く確認して!!」となっていることが、確認できたことと
思います。(確認ができたら「OK」ボタンか「キャンセル」ボタンをクリック
して終了させてください。)

ちなみに、この警告画面(vbCritical)の他にも、注意画面(vbExclamation)
や問い合わせ画面(vbQuestion)などもあります。(詳しくは、VBE画面の
ヘルプで調べてみてください。)



今回はこれで終了です。
次回は、また新たなリクエストのマクロ作りをご紹介していきます。
お楽しみに!




無料メルマガの登録は、▼こちらから▼
       「Go! Go! エクセルマクロをはじめよう!」



コメント    この記事についてブログを書く
« マクロでグラフを作成する方法 | トップ | 朝マクロ! I’m love... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

マクロ作成のコツ」カテゴリの最新記事