今日の内容
- 前回の課題提出
- 条件分岐
課題提出
前回作った、個数を数えて合計を計算して表示するプログラムを提出してください。平均、分散も計算するプログラムを書いた人はそれを提出してください。件名:学籍番号と「Do Loop文」、本文:プログラムと名前
条件分岐
前回はInputBoxを使って、正の数が入力されるまで繰り返しましたが、今回は、正の数が入力された時だけ計算するプログラムを書きましょう。このような条件判断にはIf文を使います。書き方は
If 条件 Then
条件が成り立つときに実行する文
End If
です。数字の入力は前回同様
n = InputBox("幾つまでの和を計算しますか")
ですので、この後に前回も書いた
wa = 0
For j = 1 To n
wa = wa + j
Next j
Cells(1, 1) = "合計"
Cells(1, 2) = wa
を
If IsNumeric(n) And n > 0 Then
と
End If
の間に挟まれるように書きます。つまり
If IsNumeric(n) And n > 0 Then
wa = 0
For j = 1 To n
wa = wa + j
Next j
Cells(1, 1) = "合計"
Cells(1, 2) = wa
End If
となります。
インデント
IfとEnd If、ForとNextのように、ペアになるもので挟まれた部分は少し左に空白を入れて右にずらして書くと、どことどこが対になっているか分かりやすいです。キーボードの一番左の列の上の方にあるTabと書かれたキーを押すと右にずれます。
ELSE
条件が成り立たなかった場合に実行する文がある時には
If 条件 Then
条件が成り立つときに実行する文
Else
条件が成り立たなかったときに実行する文
End If
のように書きます。
練習
- 正の数が入力されたらその数までの和を計算して表示する
- 正の数が入力されなかったら、「正の数を入力してください」というメッセージを表示する
メッセージを表示するには
MsgBox ("正の数を入力してください")
と書きます。
MsgBox
MsgBox( )の(括弧)の中に" "で囲まれた文字を書くと、その文字が表示されます。例
MsgBox ("正の数を入力してください")
" "なしで変数の名前を書くと、その変数の値が表示されます。
例えば、和を計算するプログラムで
Cells(1, 2) = wa
の代わりに
MsgBox(wa)
と書いてみてください。
MsgBoxによる質問
MsgBoxは、単に文字を表示するだけでなく、OK、キャンセルなど、どのボタンがクリックされたかを知ることも出来ます。試しに
x = MsgBox("あなたはお昼ごはんを食べましたか", 4, "質問")
If x = 6 Then
MsgBox ("午後も元気ですね")
Else
MsgBox ("ちゃんと食べてくださいね")
End If
を実行して、質問に答えてください。
使い方一覧
aとかbの文字は必要に応じて書き換えてください。
x = MsgBox("a", 1, "b")
OKをクリックするとxに1が代入され、キャンセルをクリックするとxに2が代入されます。
x = MsgBox("a", 1, "b")
MsgBox (x)
を実行して、xの値を確かめてください。
0,1の他にも、次のメッセージボックスの種類があります。
2 | [中止]、[再試行]、[無視] |
3 | [はい]、[いいえ]、[キャンセル] |
4 | [はい]、[いいえ] |
5 | [再試行]、[キャンセル] |
クリックしたボタンとxに代入される値の関係
1 | OK |
2 | キャンセル |
3 | 中止 |
4 | 再試行 |
5 | 無視 |
6 | はい |
7 | いいえ |
0 件のコメント:
コメントを投稿