第4講 If文を学ぼう
第1話 If文とは?
If文とは何でしょうか。
実は皆さんご存じですよね。
中学生のときに、英語で習いました。
あのif文と基本同じと考えて下さい。
読者の方の中には、小学生の人もいるかも知れませんね。
でも、大丈夫ですよ。
小学生の皆さんにも分かるように説明していきますから。
If文は、ドラえもんのもしもボックスを思い浮かべてもらえば分かりますよ。
もしも、ボックスで声のない世界だったら、吹き出しがでる等のアニメがありますよね。
If文もこれと同じ構造をしています。
If p Then A
はもし、pならばAだというわけです。
プログラミングの世界では、
もしpならばAの命令を実行せよということになります。
VBAの文章は、コンピュータへの命令なので、
命令文と言います。
命令は複数入れることが出来ます。
このときには、
If p Then
A
B
C
End If
とします。複数の命令にするときには、
If * ThenとEnd Ifの間に複数の命令文を入れればよいのです。
AとBとCの命令が実行されることになります。
命令が複数のときにはEnd IfでIf文を閉めることをお忘れにならないようにしましょう。
命令文が1つしかないときでも
If p Then
A
End If
と記述することも出来ます。
具体例は
If a>2 Then Cells(3, 5) = a
(または、
If a>2 Then
Cells(3, 5) = a
End If
とすることも出来ます。
)
などです。
これは変数aの値が2より大きければ、
Cells(3, 5)すなわちE3にaの値を代入せよ、となります。
では、pでないときは?
何もしません。
では、pでないときにも何かさせたい場合は?
If p Then A Else B
を使えばよいのです。
これは、もしpならばAの命令を実行し、pでないならBの命令を実行せよです。
これも
If p Then
A
B
C
Else
D
E
End If
命令を複数にすることも出来ます。
この場合は、pならばAとBとCの命令を実行し、
pでないならDとEの命令を実行することになります。
このIf文を使うと、
と分岐させることが出来ます。
If文を使わない場合は、
A→B→C→D→・・・・
と直線的な動きしか出来ないのに対して、
2次元的に動かすことが出来るのです。
If文を使うことによって、プログラムの世界は一気に広がります。
では、皆さん
参考ダウンロード添付ファイル
をダブルクリックによって開いて下さい。
例によって、VBAのコードは空っぽになっています。
コードを入れて、
国語から英語までに100点以下の整数のランダムデータをいれ、
さらに、3行教科の合計を算出して、
合計が200以上なら合格と表示させるマクロを考えて下さい。
ランダムデータは
For i = 3 To 5
Cells(5, i) = Int(101 * Rnd)
Next
で発生させることが出来ます。
Rndは、乱数と言われるもので、
1未満の小数をランダムに発生させます。
それに101をかけることによって、
101未満の小数が出来ます。
Int( * )は*の小数点を切り捨てる命令です。
ですから、Int(101 * Rnd) によって101未満の整数が発生するのです。
また、以上は≦等の記号がプログラミング言語にはありませんので、
<=で≦を表します。
これは、プログラミング言語に共通しています。
≧なら>=ということになります。
例えば、w≧200としたいなら、
w >= 200 です。
尚、CommandButton1_Click()冒頭に
Cells(5, 7).Select
Selection.ClearContents
を入れておきましょう。
理由は、前回合格と表示されているとき、
次の実行ボタンを押したときに、
200点未満だと何もしませんから、
合格の表示がそのまま残り、
200以上のときにだけに合格と表示させるという要求を満たさないからです。
さらに実行ボタンを押すと、
尚、乱数ですから結果は実行ボタンを押す度に変わります。
第3講第11話へ 第2話へ
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ第2部へ
小学生からエンジニアまでのRuby入門へ
小学生からエンジニアまでのC言語入門 基礎から応用まで
本サイトトップへ