<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000--VBAの小屋>「エディタ」に慣れる
   1 2 3 4 5



このif文をうまく活用することで、メッセージボックスの種類を変えて処理を作ることもできるんですよ。
ヘルプでメッセージボックス関数、ちょっと覗いてみてください。
メッセージボックスっていろんな種類があるんですよ。普段はOKボタンがひとつだけのしか出てきませんけど、いろいろありますでしょう?

vbOKOnly 0 [OK] ボタンのみを表示します。
vbOKCancel 1 [OK] ボタンと [キャンセル] ボタンを表示します。
vbAbortRetryIgnore 2 [中止]、[再試行]、および[無視] の 3 つのボタンを表示します。
vbYesNoCancel 3 [はい]、[いいえ]、および [キャンセル]の 3 つのボタンを表示します。
vbYesNo 4 [はい] ボタンと [いいえ] ボタンを表示します。
vbRetryCancel 5 [再試行] ボタンと [キャンセル]ボタンを表示します。
vbCritical 16 警告メッセージ アイコンを表示します。
vbQuestion 32 問い合わせメッセージ アイコンを表示します。
vbExclamation 48 注意メッセージ アイコンを表示します。
vbInformation 64 情報メッセージ アイコンを表示します。
vbDefaultButton1 0 第 1 ボタンを標準ボタンにします。
vbDefaultButton2 256 第 2 ボタンを標準ボタンにします。
vbDefaultButton3 512 第 3 ボタンを標準ボタンにします。
vbDefaultButton4 768 第 4 ボタンを標準ボタンにします。
vbApplicationModal 0 アプリケーション モーダルに設定します。
vbSystemModal 4096 システム モーダルに設定します。
vbMsgBoxHelpButton 16384 ヘルプ ボタンを追加します。
VbMsgBoxSetForeground 65536 最前面のウィンドウとして表示します。
vbMsgBoxRight 524288 テキストを右寄せで表示します。
vbMsgBoxRtlReading 1048576 テキストを、右から左の方向で表示します。

で、メッセージボックス中の各種「ボタン」って、VBA的には下のように表現します。

vbOK 1 [OK]
vbCancel 2 [キャンセル]
vbAbort 3 [中止]
vbRetry 4 [再試行]
vbIgnore 5 [無視]
vbYes 6 [はい]
vbNo 7 [いいえ]

で、たとえば、vbOKCancelっていうボタンを使ったとして、OKとキャンセルのふたつのボタンが出るので、OKボタンをクリックしたとき別のメッセージボックスを出したい、ということなら、「vbOKCancelがvbOKだったらメッセージボックスをだして」という命令を書くことになるんです。

ちょっとややっこしいですけど、やってみましょう。

コマンドボタンのほうでやってみましょうか。
まず、今までのメッセージは消してしまって・・・。
MSGBOX関数のすぐ後ろに、カッコを入力します。

で、ふつうに、ダブルコーテーションで囲んで、メッセージを入力します。

と、下のように、おたすけメニューが出てくるはずですので、うまいこと一覧からどれか選びましょう。
そうですねぇ。vbOKCancelを選びましょうか。

で、カッコを閉じます。
閉じた後、下のように半角のイコールを入力すると、ボタンの種類のリストが出てきますので・・・vbOKを選びましょうか。

で、下のようになりました。

まあ、間違えちゃったら最初からやり直せばいいんだし、とにかくエディタの雰囲気に慣れちゃうことを第一に考えてゆっくりチャレンジしてください。

で、後は、それぞれ、Okボタンをクリックしたときと、そうでないときの処理を書いてやります。
わたしはこんな感じに↓しました。



んじゃ、再度トライ・・・。フォームはいちおう上書き保存して、フォームビューに切り替えてくださいね。
コマンド0ボタンをクリックすると???

ほほ。OKボタンクリックすると、こんなメッセージが出てきましたよ〜。

ん〜、こういうメッセージなら、ボタンはOKキャンセルじゃなくて、はい、いいえ、の方が雰囲気出ますかねぇ。
んじゃ、ちょこっと書き換えてみますか。
どこを書き換えたらよいか、見当つきますか???



んでは改めて・・・。
どうでしょう?そう・・・このメッセージは「ドラゴンクエスト」を意識しています(笑)