今回は、PythonとExcelを使って、子ども向けの足し算の計算問題を自動生成する方法をご紹介します。
印刷してすぐに使えるワークシートを、毎回ランダムな問題&日付付きファイル名で自動作成できる便利なスクリプトです!
✨ なぜこのドリルを作ったのか?
計算問題を早くできるようになるには、1桁同士の足し算で答えが11以上20未満になる計算を覚えることがとても重要です。
基本的な計算パターンを頭に入れておくことで、指を使ったり、頭の中で数えたりする時間が減り、瞬時に答えが出せるようになります。
そこで今回は、1桁の足し算の中でも「11〜19になる組み合わせ」に絞ったドリルを作成しました。
この範囲は、繰り上がりが発生することも多く、計算力を鍛えるには最適です。
📌 このスクリプトでできること
- ✅ 1桁の数字の足し算問題を20問生成
- ✅ 答えが11〜19になるように制限
- ✅ ①〜⑳の番号付き
- ✅ 2列×10行でA4縦サイズにぴったり収まるレイアウト
- ✅ ファイル名に日付が入り、毎回新しいファイルが生成される
- ✅ 印刷してそのまま使える!
🛠 必要な準備
1. Pythonのインストール
まだインストールしていない方は、公式サイトからPythonをインストールしてください。
2. 必要なライブラリのインストール
pip install openpyxl🧾 スクリプト全文
import random
from openpyxl import Workbook
from openpyxl.styles import Alignment, Font
from openpyxl.utils import get_column_letter
from datetime import datetime
# 問題生成
problems = []
while len(problems) < 20:
x = random.randint(1, 9)
y = random.randint(1, 9)
if 11 <= x + y < 20:
problems.append((x, y))
random.shuffle(problems)
# Excel作成
wb = Workbook()
ws = wb.active
ws.title = "計算問題"
for idx, (x, y) in enumerate(problems):
col = 1 if idx < 10 else 3
row = idx % 10 + 1
number = chr(9311 + idx + 1)
cell = ws.cell(row=row, column=col)
cell.value = f"{number} {x} + {y} = _______"
cell.font = Font(size=24)
cell.alignment = Alignment(horizontal='left')
for col in [1, 3]:
ws.column_dimensions[get_column_letter(col)].width = 32
for row in range(1, 11):
ws.row_dimensions[row].height = 70
# ファイル保存
today_str = datetime.today().strftime('%Y%m%d')
file_name = f"計算問題_{today_str}.xlsx"
wb.save(file_name)
# 出力メッセージ
print(f"ファイルを保存しました: {file_name}")
▶ 実行方法
ターミナルやコマンドプロンプトで以下を実行するだけ!
python generate_math_sheet.py実行すると、スクリプトと同じフォルダに 計算問題_YYYYMMDD.xlsx というファイルが生成されます。
🖨 印刷して使おう!
生成されたExcelファイルは、A4縦サイズにぴったり収まるように調整済みなので、印刷してそのまま使えます。
お子さんの家庭学習としてもおすすめです!

💡 応用アイデア
- 引き算や掛け算バージョンに変更
- 答え付きの別シートを追加
- PDFで自動保存
- StreamlitなどでWebアプリ化
- 定期的に自動生成して印刷する仕組み(cronやタスクスケジューラ)
✍ まとめ
PythonとExcelを組み合わせることで、教育現場や家庭学習に役立つ教材を自動生成できるのはとても便利です。
ぜひこのスクリプトを活用して、日々の学習をもっと楽しく・効率的にしてみてください!


コメント