上の記事の続き。
問題点の抽出
前回の最後にも書いたが、このエクセルの問題点はこんな感じだ。
- 教科が3~6年生用。生活科が無い。しかも低学年は2段階評価。
- 低学年用の2段階評価シートが必要
- 「要録成績」がうっかり打ち込みそう。要録類はシートの色を変更
- つーかいじらない部分には保護をかけよう
- 来年度から英語が教科化して、ABC評価かもしれないのに、成績欄がない!
- 文体変更マクロがゴリ押し過ぎるので、マクロを組み替えて、辞書登録できるようにする。
上の5つはすぐに対応できそう。
今回問題なのは、一番下のマクロの組み替えである。
とりあえずは上の5つを変えていく。
細かい調整
とりあえず「要録成績」「要録用所見類」はシートタブの色を変更してみた。
生活科が無い問題は、
最初の学年の設定画面で2年生以下なら「理科」の部分に「生活科」が現れるようにした。
細かいの評価の観点はまた後で入れなおす。
要録の成績が低学年に対応していない件は、
とりあえず手打ちできるシートを用意したので、そちらに打ち込んでもらおう。
後は英語の成績を追加。
4観点だよね…?
やばい、違ったら勉強不足がばれる。
マクロを入れよう!
今回の改変の大きな目玉は、
辞書登録できるシートを作って、所見文を要録風に直すのをもっと簡単にしよう
という点である。
とりあえず辞書登録シートを作成。こんなのは凝らずにシンプルでいい。
問題はマクロの中身である。
今まではReplaceメソッドを使って、毎回ゴリ押しで変換していたようだが、
辞書登録するとなると、Replace関数の方がループの対応が簡単そう…?
ということで、出来上がったコードがこちら。
Sub 敬体から常体へ()
'文体を変更する
Dim i As Long
Dim k As Long
Dim p As Long
Dim cnt As Long
Dim a As String
Dim b As String
'置換する辞書の数
cnt = WorksheetFunction.CountA(Worksheets("辞書登録").Range("A:A"))
'通常所見から外国語まで
For p = 3 To 6
'児童数
For i = 3 To 44
'変換する言葉の数
For k = 2 To cnt
a = Worksheets("辞書登録").Cells(k, 1)
b = Worksheets("辞書登録").Cells(k, 2)
Worksheets("要録用所見類").Cells(i, p) = Replace(Cells(i, p), a, b)
Next
Next
Next
MsgBox "なおしたよー" & vbCrLf & "後は自分でよろしくね"
End Sub
思っていたより、短くなりました。
でもFor~Next文が3回出て来て、ぐるぐるするコードです。
これで辞書登録したものがどんどん置換されていきます。
実際に動かしてみると、以前のReplaceメソッドより遥かに重くなってしまったので、
それだけ何とかしたいが…何か良い知恵は無いですかね?
というかReplaceメソッドでループ対応させればよかった?
最近、「所見文体を要録文体に直す」という話がTLに流れてきたので、マクロを使って実装してみたが、いかんせんループ回数が多くなるので遅くなっていまう。
— よしの とおる (@tohruyoshino) 2020年3月14日
職場のPCでちゃんと処理を終えてくれるだろうか。
副産物
今回作ったマクロって、
「あるセルに書かれた文章の中から、登録した特定の言葉を置換する」というものなんですね。
あれ?
これって表記便覧も同じ仕組みじゃね?
表記便覧とは
・・・文章の表記において、「この言葉は こう書いてね」という決まりが載っている
便覧。
例えば「色々な」は「いろいろな」とひらがなで書かないといけない。
前の画像で、左側は所見文→要録風に直すための辞書だけど、
右側は表記便覧用の辞書にした。
基本的には、上のコードの数字を少しいじっただけ。
あとは、どれくらい精度が高い辞書が作れるかだな。
振り返り
とりあえず「辞書登録をして、所見文から要録風に直すシート」は作ることができた。
さる先生いわく、これで2億年分くらい無駄しているらしいから、みんなで運用すれば1億年分くらいは削れるんじゃない?
これすごい!
— 坂本 良晶@EDUBASE (@saruesteacher) 2020年3月10日
日本中の教員が要録で「ですます」から「である」に変更することに費やす時間はトータルで2億年分ぐらいあると思うんですが本当に無駄。不文律ドリブン仕事。
文末が「ざます」でも「ごわす」でも「なり」でも地球は確かに回り続ける。知らんけど。 https://t.co/11TTXajdZb
今回の良かった点は表記便覧を直すシートができたことかな。
これでまた意味の無い仕事が少し減ったぞ。
後はどちらもどれくらい精度が高い辞書が作れるかにかかってくるから、
今度はその研究ができないかな。
ただ直せるけど、すげー重いから、職場のPCで止まらずにできるかが心配。
このエクセルが欲しい方は、またツイッターなりコメントなりで連絡をくれればと思います。
下のnoteにファイルを置いておきました。
因みに参考にしている本はこちら