VBA13_肝心カナメの条件分岐(If~Then編)

こんばんは! 二日酔いで苦しんでた管理人のBenです。少し前にFor~NextやDo~Loopなどの繰り返し処理をノートしました。その繰り返し処理とともにプログラム作成で絶対欠かせないのが今回の条件分岐です。
●条件分岐とは
特定の条件を満たしているかどうか判定してその結果によりその後の処理を分岐することです。

20151112a.png
日常における条件分岐の一例として銭湯をあげました。図のようなものをフローチャートと言ってプログラムの流れを意味しています。上から順に流れに沿って処理されます。まず家族で銭湯に出かけて館内に入るまでは一緒です。その後、性別によってお父さんと弟は男湯、お母さんとお姉さんは女湯に分かれます。この「性別」というものを条件にして、それにより行き先が分岐するのです。この条件分岐を誤ると大変なことになります。

20151112b.gif

VBAにおいて最も基本的と言える条件分岐がIf~Thenステートメントです。例題として、変数iが10だったらA1セルに終了と表示させるものを作ってみます。

Sub 条件分岐①()
  Dim i As Integer
  i = InputBox("数字を入力")
  If i = 10 Then Range("A1") = "終了"
End Sub
実際にコーディングしてみました。If文はi=10のときだけRange("A1")セルに終了を表示するというもので、Dimは変数の定義だしこれまで復習したものですね。でも、Inputboxって?
20151112c.gif
これをモジュールに入力して実行すると、御覧のようなウィンドウが出ると思います。それはi=inputbox("数字を入力")を実行したからで、簡単に言えば、ウィンドウを出して入力された値をiに代入しなさいというものです。今はまだエラー処理とかしていないので、小さめの整数を入力してあげましょう。

20151112d.gif
そのときに10を入力したときだけ、A1セルに終了と表示されます。これはi=10のときだけ実行し、それ以外の時は実行しないというまさに条件分岐の結果です。この条件分岐、実用していくともっと複雑で難しくなります。でも、これを自在に使えるようになるとプログラムの自由度が格段に増します。大事な課題なので、次も条件分岐、でもパワーアップしますよ!

この記事へのコメント


この記事へのトラックバック