【ExcelVBA公開模試】最大値を保存して、条件付き最大値を求める
文法を無視して、とりあえず動けばいいという邪道ExcelVBA講座こと「速読VBA単語」に準拠した問題を出題します。
問題
次の図1で、B列の得点を使ってC列にその時点での最高得点を求めたい。例えば、セルC9は、セル範囲$B$2:B9の最大値とする。ExcelVBAを用いてC2:C14に最高点を求めなさい。ただし、テスト名が「期末テスト」の得点は最高得点の計算から除外するものとし、最高点の欄も空欄にすること(図2)。
<図1>
<図2:完成イメージ>
わえなび式 正解例
(このページの下にあります)
目標回答時間
プロ2分以内、アマチュア10分以内に処理ができたら合格
この問題の出題範囲
「速読VBA単語」Program3-4まで
ご案内
ExcelVBAをなんとなく理解できればいいという初心者のための「速読VBA単語」を受講希望の方はカリキュラムをご覧ください。
考え方
最大値を求めるには、[最大値保存用の変数]を1つ用意して
(1)初期値の設定
(2)ループ
(3)ループの内側にIf文を書き、変数を超える最高記録であれば上書き
(4)ループの後で最高記録を出力
の4つを記述します。最大値の基本形は絶対暗記です!!!
[変数] = 初期値(たいていは0にする)
For i=~
If [変数] < [得点] Then
[変数] = [得点]
End If
Next
セルなどに出力←[変数]
正解例
Sub moshi()
pointmax = 0
For i = 2 To 14
If Cells(i, 1) = "期末テスト" Then
Cells(i, 3) = ""
Else
If pointmax < Cells(i, 2) Then
pointmax = Cells(i, 2)
End If
Cells(i, 3) = pointmax
End If
Next
End Sub
バックナンバー
この記事が気に入ったらサポートをしてみませんか?