概要
両親が高齢者に近づくにつれ医療費が増えたため、
医療費控除を受けるために確定申告を行う。
交通費や医療費の入力が面倒だったため、Python を用いて自動化する。
また、いつでもスマホで入力できるように、Notion データベースを利用する。
医療費の確定申告方法
医療費控除を受けるためには、専用の Excel ファイルに医療費情報を入力し、
アップロードする必要がある。
このテンプレートは以下のようなものだ。(引用: 国税庁 医療費集計フォーム)

入力したいデータは以下の4つだ。
- 治療を受けた人
- 医療機関名
- 支払い金額
- 年月日
Notion データベースの設定
データを入力するためのデータベースを Notion で作成する。

以下のような設定を行った。
- 治療を受けた人: 家族しかいないので選択肢で選ぶ
- 医療機関名: 文字列
- 支払い金額: 整数
- 年月日: 日付
Notion は現在のビューを CSV 出力することができるので、
これを Python で読み込んで、Excel に書き込む。
※医療機関名は選択肢の方が適しているが、
両親は「選択肢の追加操作」が出来ない(苦手)ため文字列で入力する。
医療機関の登録
医療機関を登録するための CSV、 hospitals.csv を作成する。
以下のようなカラムで構成されており、
薬局や医療機関の分類情報や交通費(往復)の情報を記載できる。
| |
hospitals.csv に登録されていない医療機関が入力された場合は、
以下のように表示され、交通費以外の情報を入力する。
| |
Python での処理
ここからは Python で処理を行う。 入力は次のような CSV で受け取る。
| |
ここからは単純に医療費を計算し、openpyxl を用いて Excel に出力する。
テンプレートをコピーし、医療機関ごとに Excel ファイルへ書き込む。
交通費はまとめて記述するため、診療回数を数えておいて合計値のみを記載する。

また、以下のように長い名前の医療機関名を入力したときには、20 文字以内に直したり
半角数字を全角数字に変換したりする機能を持っている。
| |

プログラム
フォルダ階層やデータファイルの名前に注意してください。
プログラムと同階層に ./hospitals.csv と ./iryouhi_form_v3.xlsx が必要です。
2023 年の CSV は ./2023/data2023.csv に保存してください。./2023/2023医療費.xlsx に出力されます。