第6講 If文(分岐)を理解しよう

第2話 If文とは?


If文については、中学生のときに英語で学び皆さんがよくご存じのものです。
If文とは次のようなものでした。
If P Then A
もしPだったらAです。
ドラえもんの例なら、
If 声のない世界 Then 吹き出しが出てくる
です。

さて、For文とIf文は、
プログラミングの学習の中で最も大事なものであると
前講で申し上げました。
なぜIf文が重要なのでしょうか。
実は、今まで学んだプログラミングは直線的な流れでした。
コンピュータは、プログラムの文章を上から順に実行していくだけです。
A→B→C→・・・
性格診断のようにこれを次のように分岐させることができれば、
かなり内容豊かなプログラムを組むことができます。
l01
この分岐させるための命令文がIf文なのです。
If文には2種類あって
If 条件式 Then
  A
End If
(または If 条件式 Then A)

If 条件式 Then
  A
Else
  B
End If
(または If 条件式 Then A Else B)
です。

1番目のIf文は、条件式が正しいときだけ命令Aを実行します。
2番目のIf文は、条件式が正しいとき命令Aを実行し、正しくないときは命令Bを実行します。
1番目のIf文の流れ図(フローチャート)は、
l02
2番目のIf文の流れ図は
l03
となります。
具体的には、
If w < 100 Then
  w = w + i
End If
はwが100未満ならw = w + iを実行しなさいです。
If w < 100 Then
  w = w + i
Else
  w =w * i
End If
はwが100未満ならw = w + iそうでないならw = w * iを実行しなさいという命令になります。

尚、If文は複数の命令も実行させることができます。
If 条件式 Then
  A
  B
  C
End If
これは条件式が正しいとき、AとBとCの3つの命令を実行させる場合です。
また、
If 条件式 Then
  A
  B
  C
Else
  D
  E
End If
なら、条件式が正しいときはAとBとCを、正しくないときはDとEを実行しなさいとなります。

()の中で一度触れていますが、命令文が1文しかない場合は、
If 条件式 Then A
If 条件式 Then A Else B
と簡略に記述することもできます。
ですが、私は1文しか命令文がない場合でも、
If 条件式 Then
  A
End If
If 条件式 Then
  A
Else
  B
End If
と記述することをお勧めしています。
意味のまとまりごと段組をする習慣を付けていただきたいからです。

さて、If文を実際に学ぶための課題を出しましょう。

B6に100未満の整数を発生させて、
その整数が60以上ならB8に合格と表示させるマクロを考えましょう。
発生データが60未満なので、
B8には何も表示されない
発生データが60以上なので
B8に合格と表示されている

尚、≧はVBAにはありませんので、>=で代用します。

さて、次の課題です。

ランダムデータを発生させる方法を説明しましょう。
Cells(6,2)に100以下の整数を発生させるためには、
Cells(6, 2) = Int(100 * Rnd())
とします。Rnd()によって、ランダムな小数が発生します。
Int(・)は()の中の小数を切り捨てて整数にする命令です。
Rnd()によって、0.7059・・・が発生したとすれば、
100 * Rnd()で100倍となり70.59・・・となります。
Int(100 * Rnd())ピンクの働きによって小数が切り捨てられ70という整数になるというわけです。
では皆さんプログラムの文章を考えてみましょう



1話へ 第3話へ


トップ

初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門

数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ