はじめに
高専生(エンジニアの卵たち)にとって、避けては通れないラスボス。
それが 「実験レポート」 です。
毎週のように課される実験、そしてレポート。
中身を書くだけでも大変なのに、僕たちを地味に、しかし確実に削ってくるのが 「事務作業」 の数々です。
- 毎回Wordの表紙をコピペして、日付を書き換える
- 「出席番号_氏名_実験名.docx」という指定されたファイル名にリネームする
- フォント設定が勝手に変わってイライラする
- 指定のフォルダを作って整理する
「これ、本質じゃないよな?」
そう思った僕は、クラスメイト40人全員の「生存率」と「QOL」を上げるために、Pythonで自分専用の最強ツールを作り、それを配布可能な形(exe化)にしました。
今回は、コードの解説ではなく 「なぜ作ったのか」「どういうこだわりを詰め込んだのか」 というプロダクト開発の視点で共有したいと思います。
解決したかった「負」
僕のクラス(というか高専全体)には、レポート提出においていくつかの厳格なルールがあります。
- ファイル名の厳守:誰のものかわかるために。
- 表紙のフォーマット:指定のものを使い回す必要がある。
- フォント指定:MSゴシックやHG丸ゴシックなど、指定がある。
これらを毎回手動でやるのは、ハッキリ言って時間の無駄です。
しかも、疲れていると「日付を変え忘れる」「ファイル名をミスる」という事故が起きます。
「なら、全部ワンクリックで終わらせればいいじゃない」
これが開発のスタートでした。
作ったもの:「Kosen Report Generator」
名前は仰々しいですが、機能は極めてシンプルかつ強力です。
どんなツール?
「実験名を入力してッターン!(Enter)するだけ」
これだけで、以下の処理が一瞬で完了します。
- デスクトップに「実験名」のフォルダを自動生成
- 指定のWordテンプレートを読み込み、「出席番号・氏名・実験名・提出日」を自動入力
- ファイル名を学校指定の規則(番号_氏名_実験名.docx)に自動リネーム
- 2ページ目に改ページし、本文用のフォント(HG丸ゴシックM-PRO 10.5pt)を自動設定
- 生成されたフォルダを自動で開く
ユーザー(クラスメイト)がやることは、実験名を入れるだけ。これだけです。
こだわったポイント(UX)
自分だけが使うなら適当なスクリプトでいいのですが、今回は「クラスのみんなに使ってもらう」ことを前提にしました。そのため、以下のUX(ユーザー体験)に徹底的にこだわりました。
1. 「Python環境不要」のexe配布
クラスメイト全員がPythonをインストールしているわけではありません。
なので、PyInstaller を使って完全なスタンドアロンアプリ(.exe)にしました。
PythonもWord操作ライブラリも全て内包しているので、友達はファイルをダブルクリックするだけで動きます。
2. 「設定」は一度きり
初回起動時だけ「出席番号」と「名前」を聞いてきます。
一度入力すれば設定ファイル(JSON)に保存され、二回目からは入力不要。
「毎回名前を入れる」という手間すら排除しました。
3. 見た目は「モダン」に、挙動は「爆速」に
GUIライブラリには CustomTkinter を採用し、古臭いツール感を払拭。
さらに、アプリアイコンもしっかり設定しました。
「怪しいツール」ではなく「ちゃんとしたアプリ」に見えることは、使ってもらう上で信頼感に繋がります。
4. フォント指定の自動化(地味だけど重要)
Word操作において、日本語フォントの指定は意外と厄介なのですが、ここも自動化しました。
書き出しの2ページ目のカーソル位置ですでに 「指定フォント」 になっているため、Wordを開いた瞬間からレポートを書き始められます。
「フォント設定を変える」という3秒の手間×40人分×毎週= 膨大な時間の節約です。
クラスへの展開と反応
完成した .exe をアイコン付きでパッケージングし、クラスのみんなに共有しました。
一番嬉しかったのは、
「え、これウイルスじゃなくてガチで便利なやつ?」
「うわ、マジで一瞬で終わった」
という反応です。
最初は「自分が楽をしたい」というエゴから始まった開発でしたが、結果としてクラスメイトの「面倒くさい」を解消し、本来時間をかけるべき「レポートの中身(考察)」や「睡眠時間」を確保する手助けができました。
おわりに
プログラミングの醍醐味は、高度なアルゴリズムを書くことだけじゃなく、 「目の前の『めんどくさい』を技術で殴って解決する」 ことにあると思います。
たった一つのツールですが、これでクラス40人の時間を毎週数分ずつ、年間で数時間を救うことができました。
もし学校や職場で「これ面倒だな」と思う作業があったら、ぜひPythonで自動化ツールを作ってみてください。
そして、それを周りに配ってみてください。
「ありがとう」と言われる開発体験は、何物にも代えがたい楽しさがあります。
(Powered by Python, CustomTkinter, python-docx, PyInstaller)