"江口さんの大失敗"を相談するため、八木くんのマンションを訪れた星くん。
八木くんからVBAで解決するためには、"制御構文をマスターする必要がある"と指摘されてしまいました。
「星、このコードを実行するとダイアログボックスが表示される。
そこに数値の100を入力すると、どうなると思う?」
Sub Sample()
Dim A
A = InputBox("数値を入力してください")
If A = 100 Then
MsgBox "入力された値は100です"
End If
End Sub
「よくわからないけど…。たぶん、"入力された値は100です"というメッセージが表示されるんじゃないかな?」
「むむ…。これは問題が簡単すぎたか…」
八木くんがコードを実行し、ダイアログボックスに数値の100を入力しました。
「そのとおり、"入力された値は100です"のメッセージが表示される。
じゃあ、ダイアログボックスに数値の200を入力したら、どうなると思う?」
星くんは腕を組み、ムーッと考え込みます。
「うーん…、その場合はどうなるのかな?」
八木くんがパソコンに簡単な図をかいて説明します。
「Ifステートメントにおける処理の流れは、この図の通りだ。
つまり条件を満たしたときだけ、Ifステートメント内の処理が実行される。
条件を満たさなかったときは、Ifステートメント内の処理は実行されない。
つまり、数値の200を入力した場合、メッセージが何も表示されずにコードの実行が終了するんだ」
「そうか…。 "End If"の後には"End Sub"しか記述されていないから…すぐにコードの実行が終了するんだね」
星くんが、フンフンとうなずきます。
「ちなみにこの条件のなかの"="、これは代入演算子の"="ではなく、比較演算子の"="だよ。
つまり、左辺と右辺が等しいとき条件を満たすんだ。
さて、条件を満たさなかったときにも、何か処理を行いたいケースだってある…。
そんなときはIfステートメントのElse節を利用するんだ」