Excel VBA講座【初級編】サンプル問題|For Next文を用いた判定プログラム
今回用意した問題は、For Next文(その中にIFの条件式も追加)を用いた判定プログラムになります。
受験者の得点が表記されていない箇所があります。全てが表記されずに判定ボタンを押すとエラーメッセージが出力され、全て表記されると「合格」「不合格」を結果欄に表示させるプログラムになります。
⇒【 初心者から財務プロまで 】エクセルで学ぶビジネス・シミュレーション講座 マスターコース
ではVBEを開いて下さい。
プログラムは標準モジュールに記載します。
Sub 合否判定() ' C2からC11のセルで、未記入("")がないかチェック。 ' あったら"セルが未記入です"とMagBoxで表示する。 Dim row As Long '行を示す変数 For row = 2 To 11 If Cells(row, 3) = "" Then MsgBox "C" & row & "セルが未記入です" & vbCrLf & "処理を中断します" Exit Sub End If Next row End Sub
得点の入力箇所はC2からC11のセル。
C列は固定にして、行数が2行目から11行目まで変化するので、行数は変数に。
For文で変数rowを2から11まで代入し、For文の中身の処理をループさせる処理。
""で空白を表し、条件にあてはまれば、つまり空白であればメッセージが出力される処理になります。
空白でない条件がクリアされると次の処理に移ります。
Sub 合否判定() ' C2からC11のセルで、未記入("")がないかチェック。 ' あったら"セルが未記入です"とMagBoxで表示する。 Dim row As Long '行を示す変数 For row = 2 To 11 If Cells(row, 3) = "" Then MsgBox "C" & row & "セルが未記入です" & vbCrLf & "処理を中断します" Exit Sub End If Next row ' C2からC11のセルの値が70以上ならD列のセルに"合格" ' そうでないならD列のセルに"不合格" For row = 2 To 11 If Cells(row, 3) >= 70 Then Cells(row, 4) = "合格" Else Cells(row, 4) = "不合格" End If Next row End Sub
If Cells(row, 3) >= 70 Then ⇒70以上ならば
Cells(row, 4) = "合格" ⇒合格
Else ⇒70以上でなければ
Cells(row, 4) = "不合格" ⇒不合格
プログラムの記述は以上になります。
あとはボタンの配置です。
ボタンは適当な大きなに指定します。
「合否判定」を指定してOKをクリックします。
あとはボタンの名称を変更すれば完了になります。
以上になります。これからも問題は追加していく予定です。宜しくお願いします。