オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

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

第5話「星くん、分岐処理を学ぶ!」

第5話「星くん、分岐処理を学ぶ!」

登場人物紹介

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

"江口さんの大失敗"を相談するため、八木くんのマンションを訪れた星くん。
八木くんから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との出会い」編:エピソード一覧

一覧へ戻る

MENU