トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > VBAとの出会い編 第5話「星くん、分岐処理を学ぶ!」

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

まずは最も簡単な分岐処理から

"江口さんの大失敗"を相談するため、八木くんのマンションを訪れた星くん。
八木くんから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節を利用するんだ」

シーズン1 「VBAとの出会い」編: 各エピソードへのリンク
一覧にもどる