22日目 クラス別名前入り度数分布表を作ろう【30日間1日1本マクロ生活】
30日間1日1本マクロ生活、22日目です。
マクロを書く準備は、0日目に記事を書きました。
クラス別名前入り度数分布表
今日は成績処理のお話です。
6日目の相関表と仕組みは同じですね。
こんなデータを用意しました。
組 | 氏名 | 点数 |
---|---|---|
1 | 神谷正治 | 19 |
1 | 安達研一 | 3 |
1 | 碓井仁美 | 2 |
1 | 岩佐櫻 | 14 |
1 | 井口哲雄 | 10 |
1 | 有賀民雄 | 14 |
1 | 金森妃奈 | 5 |
1 | 村松唯衣 | 15 |
1 | 新垣桃歌 | 15 |
1 | 山野祐司 | 10 |
1 | 村瀬範久 | 14 |
1 | 岸天音 | 11 |
1 | 川合啓介 | 8 |
1 | 中原由希子 | 11 |
1 | 久保利佳 | 1 |
1 | 川端晴菜 | 8 |
1 | 水島希望 | 20 |
1 | 新垣未羽 | 20 |
1 | 丸山貞夫 | 15 |
1 | 山口健三郎 | 18 |
2 | 前島奈緒 | 10 |
2 | 寺本和秀 | 6 |
2 | 須田優来 | 14 |
2 | 梅木喜代子 | 20 |
2 | 南部安則 | 5 |
2 | 田渕彩子 | 1 |
2 | 井口貞夫 | 1 |
2 | 畠山敏行 | 19 |
2 | 鬼頭文男 | 20 |
2 | 田川真紀子 | 3 |
2 | 志賀保生 | 6 |
2 | 北尾茂志 | 16 |
2 | 上条悠奈 | 9 |
2 | 松尾八郎 | 9 |
2 | 奥成美 | 17 |
2 | 布施琴音 | 17 |
2 | 冨田昌信 | 17 |
2 | 明石篤彦 | 2 |
2 | 梅沢夏海 | 19 |
2 | 鮫島晴夫 | 7 |
3 | 久野一樹 | 14 |
3 | 西口麗奈 | 9 |
3 | 湊兼吉 | 2 |
3 | 稲葉隆志 | 4 |
3 | 金城謙治 | 11 |
3 | 依田秀之 | 3 |
3 | 沖胡桃 | 5 |
3 | 黒崎正毅 | 13 |
3 | 堀内雅裕 | 12 |
3 | 保坂香奈子 | 7 |
3 | 南部美姫 | 10 |
3 | 佐藤綾 | 15 |
3 | 相川華 | 6 |
3 | 斎藤結依 | 14 |
3 | 土居亜紀子 | 13 |
3 | 中沢優月 | 17 |
3 | 井田佳那子 | 3 |
3 | 浦田義則 | 1 |
3 | 住田庄一 | 7 |
3 | 大嶋治郎 | 10 |
4 | 春日和彦 | 18 |
4 | 木内治雄 | 3 |
4 | 吉本米子 | 14 |
4 | 小西紀子 | 19 |
4 | 石岡正光 | 17 |
4 | 大江里香 | 10 |
4 | 岡田伸 | 6 |
4 | 塚田美千子 | 19 |
4 | 飯田由奈 | 11 |
4 | 浜本円 | 17 |
4 | 高野武久 | 10 |
4 | 野呂祐昭 | 4 |
4 | 楠本昇 | 2 |
4 | 中尾美奈代 | 3 |
4 | 三橋小枝子 | 16 |
4 | 迫田真理子 | 12 |
4 | 福永浩子 | 3 |
4 | 石山香 | 10 |
4 | 野原美雪 | 5 |
4 | 織田啓之 | 17 |
5 | 小原俊郎 | 15 |
5 | 岩瀬睦夫 | 20 |
5 | 本村朋美 | 20 |
5 | 稲垣由菜 | 14 |
5 | 古沢凛花 | 13 |
5 | 石原恭之 | 18 |
5 | 柏木日出男 | 16 |
5 | 角義人 | 13 |
5 | 小平理緒 | 14 |
5 | 北岡桜子 | 7 |
5 | 広田琴子 | 6 |
5 | 木戸正則 | 11 |
5 | 奥村真人 | 5 |
5 | 福井崇 | 10 |
5 | 福岡賢明 | 9 |
5 | 田沢和代 | 11 |
5 | 岩崎利一 | 13 |
5 | 星孝義 | 13 |
5 | 大和田帆香 | 1 |
5 | 堀口淳一 | 1 |
1組から5組まで、1クラス20人ずつの小テストの点数のデータです。
小テストは20点満点。このテストの度数分布表を作りたい。
でも、ただ数字だけ並んでいても面白くありません。
クラス別に分けて、各点数の所に「人数」ではなくて「名前」を入れていきましょう。
さっそくコードを
Sub 名前入り度数分布表()
y = 2
Do Until Sheets("Data").Cells(y, 1) = ""
cls = Sheets("Data").Cells(y, 1)
nam = Sheets("Data").Cells(y, 2)
p = Sheets("Data").Cells(y, 3)
hx = cls + 1
hy = 22 - p
If Sheets("Hyou").Cells(hy, hx) = "" Then
Sheets("Hyou").Cells(hy, hx) = nam
Else
txt = Sheets("Hyou").Cells(hy, hx) & vbCrLf & nam
Sheets("Hyou").Cells(hy, hx) = txt
End If
y = y + 1
Loop
End Sub
解説しま・・・せん。
新しいことは全くやっていません。
ほとんど6日目の相関表と同じです。
実行結果
マクロを記述するウィンドウの「Sub」と「End Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押して実行します。
全体の図を見ていただきたいので、かなり文字が小さめですが、きちんと分布されました。
名前入り度数分布、実際のテストで作ってみると、生徒の成績の分布がすごくよく分かるんですよね。
もし同業の方がご覧になっているのでしたら、どうぞ使ってみて下さい。
Excelは便利
悔しいですが、Excelは便利です。
Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。
マクロを書くようになると、Excelからは離れられないですね。
30日間、頑張ります。
マイクロソフト 2014-10-17