/* アクセス解析(Google Analytics 等)の Javascript は、?> 以降に書いてください。 (Javascript of Access analysis (Google Analytics etc.), please write them after the below ?>. ) */ ?>

28日目 赤点と成績優秀者【30日間1日1本マクロ生活】




30日間1日1本マクロ生活、28日目です。

マクロを書く準備は、0日目に記事を書きました。

成績処理

学校の教員をしているので、テストの成績処理は必ずやる仕事の一つです。

連番 氏名 得点
1 大木菜々実 81
2 久米美穂 83
3 高嶋友吉 85
4 横田愛香 35
5 鳥居昌 73
6 菅谷奈々子 97
7 今西羽菜 79
8 野村龍也 14
9 沢井文康 8
10 細田創 9
11 柳川紗羽 71
12 岩井正広 77
13 浅見末治 97
14 大平音々 3
15 高田歌音 79
16 須藤真治 77
17 堀江喜代志 2
18 堀井貞夫 2
19 尾形安奈 28
20 影山夕菜 27
21 田尻麗香 47
22 武藤珠希 38
23 末永武信 72
24 棚橋未来 66
25 石崎奈月 14
26 相田永二 79
27 森脇昌子 81
28 布施咲子 18
29 上杉颯太 77
30 小寺正利 25
31 玉城剣一 30
32 村上広司 33
33 熊谷鈴 54
34 沢井千紗 30
35 大城莉歩 85
36 柳田千紗 6
37 青山辰二 68
38 萩原時男 72
39 平山昭吉 10
40 天野亜美 50
41 沖与四郎 6
42 吉川賢二 84
43 猪俣常男 54
44 有馬優斗 88
45 石田紗矢 32
46 長島勇吉 73
47 尾崎里穂 56
48 辻本健志 48
49 土橋若葉 74
50 勝又瞳 59

残念ながら点数が取れなかった場合、赤点となります。

40点未満の場合は赤点で、文字通り得点を赤く装飾します。

85点以上の場合は成績優秀者として褒め称えるため、別の表に抽出します。

とりあえずコードを


Sub shori()
    y = 2
    yushu = 2
    
    Do While Cells(y, 1) <> ""
        p = Cells(y, 3)
        nam = Cells(y, 2)
        
        If p < 40 Then
            Cells(y, 3).Font.ColorIndex = 3
        End If
        If p >= 85 Then
            Cells(yushu, 6) = nam
            Cells(yushu, 7) = p
            yushu = yushu + 1
        End If
        y = y + 1
    Loop
End Sub

これも難しいことはしていません。

データの見出しを除く2行目からスタートし、連番がなくなるまでループ。

得点が40未満なら赤く装飾。

85以上なら名前と得点を別の表に。

その都度、別表のy座標を1つずつ増やしています。

実行結果

これが

こうなります。

完璧ですな。

Excelは便利

悔しいですが、Excelは便利です。

Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。

マクロを書くようになると、Excelからは離れられないですね。

30日間、残り2日です。頑張ります。