わたしの日常に価値はありますか?

22日目 クラス別名前入り度数分布表を作ろう【30日間1日1本マクロ生活】

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

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

マクロを書く準備早速マクロを書こうと思ったんですが、マクロって何?食えんの?って人もいると思うんで、丁寧に行こうかな、と。マクロってのは、通常は人間の手でやるような作業を、プログラムを書くことで機械に自動的にやらせるってことです。Excelの場合はVBA(Visual Basic for Application)という言語を使ってマクロを書きます。まずはその準備を。Excelを起動すると、ワークシートが現れます。ここでキーボードの「ALT+」を押してください。はキーボードの上方にあるファンクションキーの11番です。すると、このウィンドウが開...
0日目 マクロを書く準備をしよう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか?

クラス別名前入り度数分布表

今日は成績処理のお話です。

6日目の相関表と仕組みは同じですね。

相関表30日間1日1本マクロ生活、6日目です。マクロを書く準備は、0日目に記事を書きました。今日のネタは、相関表。こんなデータを準備してみました。 氏名 数学 英語 堀田由美 4 1 滝口省三 2 2 中島当麻 4 1 永島華絵 2 2 小坂新一郎 3 4 五十嵐治郎 1 2 武内美千代 2 4 佐竹絢子 5 4 川本祐子 4 3 酒井麗華 5 2 片桐由紀子 2 4 池谷沙菜 1 2 尾上龍五 1 3 本山辰二 2 2 野島健之 4 3 赤塚公男 4 1 片山愛菜 5 1 森岡竹雄 2 2 松田峻輝 2 3 坂田孝太郎 2 2氏名、数...
6日目 相関表を作ろう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか?

こんなデータを用意しました。

氏名 点数
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日間、頑張ります。

モバイルバージョンを終了