プログラ広場 - ActiveBasic講座 - 制御せよ
Home -> AB 講座 -> 制御せよ


さて、今回はいよいよ制御命令を学んでいきたいと思います。

制御命令を覚えれば、プログラミングがぐっと楽しくなることでしょう。

まずはこのプログラムを見てください。


Dim hako As Long
Dim value As String
Dim cas As String

hako = 1

If hako = 1 Then
value = "hako = 1"
cas = "hakoの値が1の場合"

Else
value = "hako = 1 ではない!"
cas = "hakoの値が1ではない場合"

End If

MessageBox(0,value, cas, MB_OK)


そして、入力したら、保存してコンパイルして実行してください。

そうするとこのようなダイアログが現れたと思います。



この結果の理由を解説するとともに、If構文の説明をしましょう。

結果に表れたとおり、変数hakoの値は1ですね。

それはなぜ1だと判定できたのでしょうか?

それは、If命令を使ったからです。

一つずつ解説していきましょう。

まず、この行を見てください。

If hako = 1 Then

If文は日本語で解説するとわかりやすいといわれています。

さっきの行を日本語に訳して見ましょう

If(もし) hako = 1(hakoの値が1) Then(ならば)

とてもわかりやすくなりましたね。

では次の行に行きましょう。

value = "hako = 1"
cas = "hakoの値が1の場合"

さっきの行とあわせてみると・・・

If(もし) hako = 1(hakoの値が1) Then(ならば)
value = "hako = 1"
cas = "hakoの値が1の場合"
(にする)

日本語訳だけを取り出してみると、

もし、hakoの値が1ならば、valueを"hako = 1"に、casを"hakoの値が1の場合"にする。

そう、この日本語訳そのままの処理を実行するのです。

次も同じように
Else(ちがえば)
value = "hako = 1 ではない!"
cas = "hakoの値が1ではない場合"
(にする)

ちがえば(1でなければ)、valueを"hako = 1 ではない!"に、casを"hakoの値ではない場合"にする

同じように、この処理を実行するのです。

最後の
End If

これは絶対に、If文の最後につけなければいけないものと思っていてください。


日本語に訳してみると、ものすごく簡単でしたね。

では、If文を利用してクイズゲームを作ってみましょう。
Dim sel As Long
Dim q1 As String
Dim q2 As String
Dim answer As String

q1 = "かーみは変人である。"
q2 = "かーみは変態である。"

sel = MessageBox(0,q1,"問題1",MB_YESNO)
If sel=IDYES Then
	answer="誰が変人や!!!"
Else
	answer="よろしい"
End If

MessageBox(0,answer,"解答1",MB_OK)

sel = MessageBox(0,q1,"問題2",MB_YESNO)
If sel=IDYES Then
	answer="誰が変態や!!!"
Else
	answer="よろしい"
End If

MessageBox(0,answer,"解答2",MB_OK)

楽しんでもらえたかな(笑)

文字列を変えてみても面白いかもね。