VBScriptでプログラミングの基礎を学ぼう6【条件分岐】

VBScript入門
スポンサーリンク

条件分岐について学ぼう

今回は条件分岐について学習していきます。

前回もお話をしましたが、プログラムは上から下に順に実行されていきます。

前回はループ処理を使うことで、上から下に実行されていったプログラムがまた上に戻るといった処理の流れになりました。

今回は特定の条件によって、それ以降の処理内容を分岐する「条件分岐」を説明してきます。

Dim InputVal

InputVal = Inputbox("はじめましてと入力してください。")

If InputVal = "はじめまして" Then
msgbox "上手に入力できましたね。"
Else
msgbox "上手く入力できませんでしたね。"
End If

いつものように、このコードをテキストファイルに貼り付けて、拡張子vbsとして保存してください。

実行するとメッセージボックスに似たポップアップが表示されましたね。

これをインプットボックスと言います。

このインプットボックスに「はじめまして」と入力してOKを押下するとメッセージボックスに褒められて、それ以外の文字列を入力すると別のメッセージがメッセージボックスに表示されました。

これはインプットボックスに入力した値を元に処理を分岐しており、条件分岐処理が実行されたということです。

では一行ずつプログラムの内容を解説していきましょう。

1行目

Dim InputVal

インプットボックスに入力された文字列を入れる変数を宣言しています。

2行目

InputVal = Inputbox("はじめましてと入力してください。")

これはInputValという変数に対して、Inputboxという組み込み関数の入力結果を代入してねという指示です。

尚、右辺のInputboxという命令文は、説明文などの表示させたい文字列を、文字の塊としてダブルクォーテーションで括り、さらに括弧で括ることで、自由に表示させることができます。

因みに、この括弧で括って命令文に対して命令の詳細を追加することを「引数」と言います。

なんとなくで良いので覚えておいてください。

3行目~7行目

If InputVal = "はじめまして" Then
msgbox "上手に入力できましたね。"
Else
msgbox "上手く入力できませんでしたね。"
End If

この処理は If から End If までの記述が一塊の処理になるので、まとめて説明していきます。

まずこの処理は条件分岐命令の一つの「IF文」と呼ばれる処理が使われています。

このIF文とは、「○○が××だったら何々する」という命令を出す命令文です。

よって、今回の3行目から7行目までの記述を日本語に訳すとこんな感じ。

3行目 Inputboxの変数の中身が “はじめまして” と同じだったら
4行目 「上手に入力できましてね。」とメッセージボックスを出してください。
5行目 それ以外だったら※Inputboxの中身が”はじめまして”以外だったら
6行目 「上手く入力できませんでしたね。」とメッセージボックスを出してください。
7行目 この条件分岐処理はここで終わりです。

IF文の構文としては以下です。

IF [条件式] Then
  [命令内容]
Else
  [命令内容]
End If

IFの後に処理を切り替えるための条件式を置いて、条件式の終わりに Then を置きます。その下の行に条件に適合した場合の命令を記述します。

Else は、最初に設定した条件式に当てはまらない場合に、以降の命令を実行してねという命令文ですが、構文上は必須ではなく、最初の条件式に当てはまらない場合の命令が不要であれば、Else とその下の命令内容を記述する必要はありません。

End If はIF文の終わりを明示する命令であり、必ず必要です。書き忘れるとエラーが発生します。

今回は条件分岐命令のなかでも最も基本であるIF文について学びました。

IF文はプログラミングをしていくにあたって、非常に重要なものなので、よく覚えておいてください。

次回は題材は何にしようか・・・

引き続きよろしくお願いします。

↓次回の記事はこちら

VBScriptでプログラミングの基礎を学ぼう7【変数宣言の強制】
変数宣言の強制について学ぼう これまでのサンプルコードでは「変数」が出てきていましたが、今回は「変数宣言の強制」につい...

↓前回の記事はこちら

VBScriptでプログラミングの基礎を学ぼう5【ループ処理】
変数についてさらに学ぼう 前回は変数を学びましたね。 前回の記事では最終的に変数を使うことで手間が増えているとい...
タイトルとURLをコピーしました