収支管理シートを作っていて JavaScript 書いた

  • Google Spreadsheet で作っている収支状況管理シートが一応形になった。
  • 8 月上旬に実家に帰省していた際に 2 日ほど集中して作業して、その後しばらく放置状態となっていたが、先週半ばから少しずつ取り組んでいた。
  • クレジットカードの支出を集計して表示するあたりが一つの山で、金曜の夜から昨日の夜までほぼずっと取り組んでようやくできた。
  • 収支管理シートは 2 年ほど前にも作って実家と自分とでそれぞれ運用していたが、手入力で同じ情報を複数箇所に記入する必要があったり、少々手間がかかるものだった。
  • というのも、できるだけスプレッドシートの標準の関数を使って処理しようとしていたので、どうも「無理やり感」があるというか、スプレッドシートをいじくるのが好きで得意な人向けのものになってしまっていた気がする。
  • そして僕も母も色々他にもやることあるし収支管理シートのことだけに専念できるわけではないので、キッチリ運用というのが難しくなってきていた。
  • また、 MVC じゃないけれど元データとビューの分離というか、データベース的発想が自分の中に少し定着してきたのもある。
  • 会社で Excel を触っていても思うのだが、最終的に見たい結果(表など)を直接作りこむのではなく、データはデータとして表の形で持っておいて、そのデータを読み込む形で(関数なりマクロなりを用いて)見たい結果を生成する、というやり方の方がメンテナンス性および拡張性が優れていることが多い。
  • なので、できるだけ手動で入力する箇所を最小限にして、それでいて見たい結果を手軽にみることができるように、という考えのもと、作りなおした次第。
  • Google Spreadsheet は JavaScript で処理を記述できるので色々調べながら自動化したい機能を書いていった。
  • 実家で書いたのが大体 300 行くらいで、今現在はトータル約 800 行くらい。 JavaScript をこんなに書いたのは初めての経験。
  • 実家では Google Apps Script のオンラインエディタで書いていて、途中で Ctrl-/ で語句補完が効くことを知ってこれは便利と思っていたが、こちらに戻ってから Visual Studio Code を使って書くようにしたら JS についてはかなり親切に補完が効くし関数の定義箇所、参照箇所へのジャンプもできるしで、効率が 2 倍くらいになった気がする。
  • 実家でも VS Code を使っていればよかったと思うくらい。