InputBox
昨年は1から100までの合計を計算しましたが、マクロを実行する時に、幾つまでの合計を計算するか尋ねるマクロを書いてみましょう。
Sub 対話型合計()
n = InputBox("幾つまでの和を計算しますか")
'ここに1からnまでの合計を計算してwaという変数に代入するプログラムを書いてください
cells(1,1)=wa
End Sub
条件分岐
先ほどのマクロを、正の数が入力された時だけ計算するように書き換えましょう。このような条件判断にはIf文を使います。
If文の書き方は
If 条件 Then
条件が成り立つときに実行する文
End If
でしたので、
Sub 対話型合計()
n = InputBox("幾つまでの和を計算しますか")
If n > 0 Then
'ここに1からnまでの合計を計算してwaという変数に代入するプログラムを書いてください
cells(1,1)=wa
End If
End Sub
と書きます。
数字の判定
先ほどのInputBoxに、数字以外のものを入れると計算できません。だから、単に0より大きいかどうかだけでなく、数字かどうかも含めて判定しましょう。
nが数字かどうかは
IsNumeric(n)
で判断します。
If文で、二つの条件が共に成り立つことは And で表すので、If文は
If IsNumeric(n) And n > 0 Then
となります。
Else文
条件が成り立たなかった場合に実行する文がある時には
If 条件 Then
条件が成り立つときに実行する文
Else
条件が成り立たなかったときに実行する文
End If
のように書きます。
練習
- 正の数が入力されたらその数までの和を計算して表示する
- 正の数が入力されなかったら、「正の数を入力してください」というメッセージを表示する
メッセージを表示するには
MsgBox ("正の数を入力してください")
と書きます。
MsgBoxの使い方
MsgBox( )の(括弧)の中に" "で囲まれた文字を書くと、その文字が表示されます。例
MsgBox ("正の数を入力してください")
" "なしで変数の名前を書くと、その変数の値が表示されます。
例えば、和を計算するプログラムで
Cells(1, 1) = 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の値を確かめてください。
他にも、次のようなメッセージボックスがあります。
クリックしたボタンとxに代入される値の関係は次のようになっています。
1 | OK |
2 | キャンセル |
3 | 中止 |
4 | 再試行 |
5 | 無視 |
6 | はい |
7 | いいえ |
0 件のコメント:
コメントを投稿