条件分岐の基本

基本式

120207-1

このように記述します。If(もしも)「条件1」then(だったら)、End If(もしも終わり)までの処理を実行すると意味になります。式を満たさない場合はスルーします。

このようなコードを書いてみます。この場合、A1セルに1が入っているとメッセージが表示されます。

120207-2

このような状態になります。A1セルに1以外のもの、もしくは何も入っていない場合は何も起こりません。(メッセージは表示されません)

処理がひとつで済む場合はEnd ifを省略できる

条件に対して実行したい処理がひとつだけの場合は、下記のように書くとEnd Ifを省略することができます。

処理が複数行ある場合や、これより下で紹介するElse(それ以外)を使う場合はEnd Ifは省略できません。

Else(それ以外)を追加する

基本式

120207-3

If(もしも)「条件1」then(だったら)条件1の処理、Else(それ以外)はそれ以外の処理を実行する、という意味になります。

このようなコードを書いてみます。

120207-4

A1セルに1が入っていれば上の図と同じ状態になりますが、それ以外はこのような状態になります。

違う条件も追加する

基本式

120207-5

If(もしも)「条件1」then(だったら)条件1の処理、ElseIf(それ以外でもしも)「条件2」then(だったら)条件2の処理、Else(それ以外)はそれ以外の処理を実行する、という意味になります。

120207-6

前回のようにプレイクポイントを設置して実行してみると、条件を満たした時だけIfの中へ入っていく様子が非常によくわかります。

条件分岐を使ったInputBoxのエラー処理

こちらの記事で、

というコードを紹介しました。このコードは数値以外のものを入力、又はキャンセルすると「型が一致しません」というエラーが出る、ということも書きました。

変数「UserMonth」は「Integer(整数)」で宣言しているので、数値以外のもの(キャンセルは「””(文字数0の文字列)」と判定される)が入るとエラーになってしまうんですね。

これを、今回紹介した If ~ End If を使ってエラー処理をしてみます。

いろいろ方法はあると思いますが、こんな形にしてみました。

先に文字列で宣言しておいて、値が入っているか? それは数値か? 1~12までの数字か? それをクリアしたらやっと処理、という形で書いています。

本当なら、更に整数かどうかもチェックすべきなんですが…そこまでやると複雑になりそうなので割愛します。

こんな感じで、If ~ End If はエラー処理にも良く使います!

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 641
  • RSSを登録

公開日:2012/02/07


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top