名称未設

【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

バックナンバー


この記事が気に入ったらサポートをしてみませんか?