Lesson.15 メッセージボックス(2)
もっと詳しくメッセージボックス
前に1度メッセージボックスについて学びましたが、ここでは詳しくメッセージボックスについて学びます。
今まで変数は結局中身を見ることができませんでした。
実はメッセージボックスは変数の内容も表示させることができます。
記述の仕方は前回とほとんど同じです。変数の内容を表示させる場所に
変数名を書きます。変数の内容は数字でも文字列でもどちらでも表示できます。
例:
number = 3
msgbox number,0,"変数の内容表示"
Dim title
title = "文字列の変数"
Dim body
body = "本文"
msgbox body,0,title
ところで、今までの方法ではいちいちよくわからない0と題名を必ず書かなくてはいけず、
ちょっとだけ表示したいときなどには
少し面倒ですよね。実は、msgboxには省略形があります。
例:
msgbox "本文"
このように、表示するのが本文だけでいいときは、本文の内容だけを
書いて、後は何も書かなくてよいのです。
もちろん変数も指定できますよ。
さて、まだ気になる場所がありますよね。
はじめの書き方の、「0」と指定した場所です。
この0、実は数値を変えることでメッセージボックスにいろいろな
仕掛けを施すことができるのです。
例:
msgbox "危ない!",48,"メッセージボックス"
これも、題名を省略することができます。
例:
msgbox "危ない!",48
この不思議な数字はたくさん種類があります。
紹介しましょう。
値 | 内容 |
0 | [OK] |
1 | [OK] [キャンセル] |
2 | [中止] [再試行] [無視] |
3 | [はい] [いいえ] [キャンセル] |
4 | [はい] [いいえ] |
5 | [再試行] [キャンセル] |
値 | 内容 |
16 | エラー アイコン |
32 | 質問 アイコン |
48 | 警告 アイコン |
64 | 情報 アイコン |
値 | 内容 |
0 | 第 1 ボタン |
256 | 第 2 ボタン |
512 | 第 3 ボタン |
768 | 第 4 ボタン |
値 | 内容 |
0 | アプリケーションモーダルに設定。 |
4096 | システムモーダルに設定。 |
16384 | ヘルプ ボタンを追加。 |
65536 | 最前面のウィンドウとして表示。 |
524288 | テキストを右寄せで表示。 |
1048576 | テキストを右から左の方向で表示。 |
メッセージボックスの選択肢とは、メッセージボックスが表示されたときに選べるボタンのことです。
メッセージボックスのアイコンとは、メッセージボックスに表示されるアイコンのことです。なお、これに合わせて表示されるときの音も変わります。
メッセージボックスの標準ボタンとは、選択肢の中で、はじめアクティブになっているボタンのことです。つまりは、メッセージボックス表示後十字キーで操作せずにエンターキーを押したときにおささるボタンの位置を指定するのです。よくわからない場合、選択肢を2つ以上にしてご自身の手でやってもらえるとわかるかと思います。
最後の「メッセージボックスのその他のオプション」については難しい項目もあるので、参考までに乗せました。あまり気にせず読み飛ばしてください。
ところで、これらの項目を2つ以上設定したいときがありますよね。
例えば、「選択肢をはいといいえ(4)」、「アイコンを警告(48)」の2つを満たす
メッセージボックスを表示させたいとします。
そんなときは、この2つの値を足したものを指定します。
例:
msgbox "はいいいえ警告",52
ちなみに計算するのが面倒なときは、次のように「+」を書いてコンピュータに計算させることもできます。
例:
msgbox "はいいいえ警告",4+48
普通は下のほうを使います。なぜかというと、後で見返したときに、
足されたものだと何を組み合わせたものなのか特定が面倒だからです。
2個ならまだしも3個や4個もつながればもうわからないでしょう。
なお、今回はメッセージボックスの選択肢のどれが押されたかは
特定できていませんよね。これについてはまた今度やります。
まとめ
msgboxの使い方
- msgbox (本文)
- msgbox (本文),(オプション値)
- msgbox (本文),(オプション値),(題名)
練習
次の条件を満たすメッセージボックスを作成せよ。
(1)題名省略の本文「情報」、アイコン「情報アイコン」、選択肢「OK、キャンセル」
(2)題名「質問」、本文「あなたは男?」、アイコン「質問アイコン」、選択肢「はい、いいえ」
解答
(1)
msgbox "情報",1 + 64
(2)
msgbox "あなたは男?",4 + 32,"質問"