120
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】クラス全員を救うために「実験レポート爆速生成ツール」を作って配布した話

Posted at

はじめに

高専生(エンジニアの卵たち)にとって、避けては通れないラスボス。
それが 「実験レポート」 です。

毎週のように課される実験、そしてレポート。
中身を書くだけでも大変なのに、僕たちを地味に、しかし確実に削ってくるのが 「事務作業」 の数々です。

  • 毎回Wordの表紙をコピペして、日付を書き換える
  • 「出席番号_氏名_実験名.docx」という指定されたファイル名にリネームする
  • フォント設定が勝手に変わってイライラする
  • 指定のフォルダを作って整理する

「これ、本質じゃないよな?」

そう思った僕は、クラスメイト40人全員の「生存率」と「QOL」を上げるために、Pythonで自分専用の最強ツールを作り、それを配布可能な形(exe化)にしました。

今回は、コードの解説ではなく 「なぜ作ったのか」「どういうこだわりを詰め込んだのか」 というプロダクト開発の視点で共有したいと思います。


解決したかった「負」

僕のクラス(というか高専全体)には、レポート提出においていくつかの厳格なルールがあります。

  1. ファイル名の厳守:誰のものかわかるために。
  2. 表紙のフォーマット:指定のものを使い回す必要がある。
  3. フォント指定:MSゴシックやHG丸ゴシックなど、指定がある。

これらを毎回手動でやるのは、ハッキリ言って時間の無駄です。
しかも、疲れていると「日付を変え忘れる」「ファイル名をミスる」という事故が起きます。

「なら、全部ワンクリックで終わらせればいいじゃない」

これが開発のスタートでした。

作ったもの:「Kosen Report Generator」

名前は仰々しいですが、機能は極めてシンプルかつ強力です。

どんなツール?

「実験名を入力してッターン!(Enter)するだけ」

これだけで、以下の処理が一瞬で完了します。

  1. デスクトップに「実験名」のフォルダを自動生成
  2. 指定のWordテンプレートを読み込み、「出席番号・氏名・実験名・提出日」を自動入力
  3. ファイル名を学校指定の規則(番号_氏名_実験名.docx)に自動リネーム
  4. 2ページ目に改ページし、本文用のフォント(HG丸ゴシックM-PRO 10.5pt)を自動設定
  5. 生成されたフォルダを自動で開く

ユーザー(クラスメイト)がやることは、実験名を入れるだけ。これだけです。

こだわったポイント(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)

120
27
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
120
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?