交通費の明細入力の自動化に四苦八苦した話

## 前提
交通費の経費申請で明細にゅうりょくが面倒だったので、自動化したかった。
なお、普段はiPhoneのApple Payに登録したモバイルSuicaを利用していた。

要件
- 交通費を記載したCSVが出力できること
    - それをベースに加工して経費の明細表を作成したい
    - 複数路線の電車とバスに乗るので1回出社するだけでも明細がとても多い
    - 出社頻度が高いわけではないので定期券を利用するのはなし
    - 出張でいつもと違う電車に乗ることが割とあるので、パターン化しにくい
- 経費の交通費とプライベートの交通費が分けられること
    - CSV出した後に目視で経費/プライベートの仕分けをするのは面倒なので、経費の交通費のみのCSVが出力されるようにしたい

これを実現するのに苦戦したので、調べたことを記録しておく。

## モバイルSuicaでCSV出力するにはサブスクが必要
モバイルSuicaのサイトにはCSV出力がない。
サイトから手でコピペしてデータを取得することはできるが、スクレイピングなどは面倒だし認証データの管理なども面倒。
同様に、Apple Pay(ウォレット)側にもそういったAPIはなさそう。

MoneyForward MeやMoneytreeなどは、CSVエクスポートするには有料プランが必要。
月額固定費をかけるのは微妙。買い切りなら良かった。
もともと交通費の総額はそれほど大きいわけでもないというのもある。

## SuicaのICカードなら無料アプリでCSVエクスポートできる

実は、Suicaの物理ICカードなら、無料のアプリでもNFCスキャンでICカードに記録された明細を読み取ってCSVを出力できるものがある。
SuicaのICカードに直接記録されている履歴は最大20件だが、一度読み取った履歴をアプリ側で保存しておいてくれる以下のアプリを利用した。
参考: [ICカード残高確認](https://apps.apple.com/jp/app/ic%E3%82%AB%E3%83%BC%E3%83%89%E6%AE%8B%E9%AB%98%E7%A2%BA%E8%AA%8D/id1478422107)

また、普段使いのモバイルSuicaと仕事用のICカードのSuicaをあえて使い分けることで、後から明細を仕分けする必要がなくなる。

## ICカードは現在、新規発行できない
世界的な半導体不足の影響とのことで、SuicaやPASMOのICカードは現在、新規発行できない。
執筆時点ですでに1年間この状況が続いている。
参考: [記名式の「Suica」及び「PASMO」カード発売の一時中止に関するお知らせ](https://www.jreast.co.jp/press/2023/20230731_ho02.pdf)

中古で購入するしかないため、ICカードはメルカリで購入した。
2000円ぐらいが相場だった。

（後から、Suica一体型のViewカードが使えることに気付いた。しかし、クレカを持ち歩くリスクもあるので、まあ良いかと思った。）

## Suicaにオートチャージする
要件的には必須ではないが、オートチャージしようと思うともう一手間必要だった。
ICカードでオートチャージするには無記名のSuicaを記名式のSuica（My Suica）に交換しないといけない。
記名式Suicaへの変更はみどりの窓口で対応してもらえる。（営業時間に注意）

>Suicaエリア内にあるJR東日本の駅の「多機能券売機」設置駅の駅員にお声掛けいただくかお近くのみどりの窓口にお越しいただくことで無記名のSuicaを記名式のSuica（My Suica）にご変更いただくことができます。

参考: [無記名のSuicaを記名式Suicaに変更することはできますか](https://faq.jrepoint.jp/faq/show/549)

とあったが、「多機能券売機」設置駅の駅員に声を掛けたら、今はみどりの窓口に行くしかないと教えていただいた。
なお、無記名→記名への変更は不可逆なので注意。

オートチャージの設定はVIEW ALTTEというJRの駅にあるATMで設定する。
また、オートチャージ用のクレカとしてViewカードが必要。
クレカの個人情報とMy Suicaの個人情報が一致しないといけない。

参考: [Suica定期券やMy Suica等でのオートチャージのご利用方法
](https://www.jreast.co.jp/card/function/autocharge/use_suica.html)

初回だけはオートチャージされないので、マニュアルチャージが必要。

## とりあえず使えるようになる
アプリを開いてスキャンしてエクスポートしたらCSVが取得できるようになった。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2332516/5afbadda-0be5-5e24-7dde-9951f1a67dc3.png" width="200">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2332516/1d8812e2-a69c-1a10-a005-311036106e32.png" width="200">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2332516/2e0b9d14-e62a-b7df-8e60-2ef7b7b04222.png" width="200">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2332516/26ed5a68-d82f-a9ca-50aa-29100313434a.png" width="200">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2332516/951e7576-2772-4403-cb1a-b88aa71b37b0.png" width="200">

## もう少しだけ工夫する
ショートカットアプリで、SuicaをNFCタグとして検知した時に、ICリーダーアプリが開くオートメーションを作成した。
こうしておくと、アプリを開いていない状態でもiPhoneをSuicaにかざすと自動でアプリが開くようになって少しだけステップが省ける。
ただ、アプリを開いた後にももう一度Suicaをスキャンしないといけないので、二度手間感はある。
ショートカットは画面タップまでは自動化できないので、痒いところに手が届かなかった。

最初のうちは、いつものクセでApple PayのSuicaで改札を通ってしまいそうになる。
これを防ぐために、仕事の日は忘れないうちにApple PayのSuicaを一時的に無効化しておく。
これもオートメーションでできないか調べたが難しそうだった。
ただ、Apple Payで通ろうとして反応しない時点で気付くので、改札でもたついて申し訳ない気持ちになる。

出力したCSVはGoogleスプレッドシートにインポートして、データを加工する。
例えば、明細には交通費以外にも入金の明細も入ってきてしまうので、金額の符号によってフィルタリングする必要がある。
また、交通費以外の経費明細と最終的にマージしたり、マージした際に日付順に並ぶようにしたりしたいので、GASでワンクリックでできるようにこれからする。