Top

hiroyuki.tank.support.site

簡単!マクロ講座

第12回〜IFの条件分岐〜

 条件分岐とは,特定の条件式の答えが真であるか偽であるかによって,実行することを決定(分岐)することです。
 コンピュータのプログラムではこの条件分岐をよく使います。
 If...Then...やSelect Caseなんかをよく使います。難しそうですが気にしないでください。
 今回は前回のメッセージボックス表示と組み合わせて,If...Then...の形,「もし○○だったら●●,もし△△だったら▲▲」というようなことをやってみましょう。

 それでは,前回の「メッセージ練習」ブックのマクロの続きに次のように入力してみてください。
***********************************************************
Sub ccc()
へんじ = MsgBox("「はい」か「いいえ」を選んでください。", vbYesNo, "練習2")
If へんじ = vbYes Then
MsgBox "「はい」を選びました。"
End If
If へんじ = vbNo Then
MsgBox "「いいえ」を選びました。"
End If
End Sub
***********************************************************

 それでは,マクロ「ccc」を実行してみてください。
 VBEの画面でマクロ「ccc」のコードの中にカーソルがあればそのままツールバーの▲(矢印が右を向いている)ボタンをクリックしてみてください。
 メッセージボックスが表示され,『「はい」か「いいえ」を選んでください。』と表示されます。ここで「はい」を押すと『「はい」を選びました。』,「いいえ」を押すと『「いいえ」を選びました。』と表示されます。
 これは,IFの条件分岐により,もし「Yes」なら『「はい」を選びました。』,もし「No」なら『「いいえ」を選びました。』と答えを変えることができるのです。

 簡単に解説をします。 ←─が解説です。
***********************************************************
Sub ccc() ←─マクロ名
へんじ = MsgBox("「はい」か「いいえ」を選んでください。", vbYesNo, "練習2") ←─メッセージボックスの種類を指定し答えをもらう
If へんじ = vbYes Then ←─もし「へんじ」がYesだったら
MsgBox "「はい」を選びました。" ←─"「はい」を選びました。"と表示
End If ←─この条件分岐はおわり
If へんじ = vbNo Then ←─もし「へんじ」がNoだったら
MsgBox "「いいえ」を選びました。" ←─"「いいえ」を選びました。"を表示
End If ←─この条件分岐はおわり
End Sub ←─このプログラムはおわり
***********************************************************

 このように一つ一つをみていくとそう難しい構文ではありません。英語ができなくてもOKです。
 「へんじ = MsgBox("・・・」の箇所は「変数」とよばれるもので,少し難しいのでまたあとで解説します。
 ちなみに,今回は「へんじ」としていますが,実はここはローマ字でもひらがなでも漢字でもなんでもいいのです。ただの入れ物と考えておいてください。


***Q&Aコーナー***
Q:マクロを実行してメッセージボックスが出ている間はカーソルが砂時計マークに変わるのですがなぜですか?
A:メッセージボックスが出ている間は「ユーザーさんこたえてください!」とコンピュータが問いかけをしています。第9回のダイアログボックスと同じです。ですから,答えるまではコンピュータが待っていますから,カーソルが砂時計マークになるのです。
Q: Sub aaa()
End Sub の後に今度は
Sub bbb()
End Sub と記述していますが,これらは関係あるのですか?
A:あまり関係はありません。同じページに書いてあるくらいと思ってください。プログラムも違うものです。もう少しするとそれぞれのプログラムを個別に呼び出して使う方法を説明する予定です。

| hiroyuki.tank.support.site.Top | このページのTop | マクロ講座目次 | 前回 | 次回 |