MFからfreeeへ。証憑を1件ずつ保存するのが嫌で、Pythonで自動化した話

自分の会社の経理には、マネーフォワード クラウドを使っていました。
(公認会計士・税理士事務所の経理はfreeeです)

現時点では、私にはfreeeの方が使いやすいかなぁと。
このあたりは賛否両論あると思いますが。


1期目は、決算データをfreeeに移し、freeeから申告しました。

2期目からは、基本的にExcelで経理をしつつ、
決算・申告時だけfreeeを使う形でいこうかなと思っています。


その際、マネーフォワード クラウドBox(レシートなどを保管しておく場所)から、
念のため証憑をダウンロードしておこうと思ったのですが、一括ダウンロード機能がなく…。

100件以上ある証憑を1件ずつダウンロードするのはつらい…と思い、
「Python(パイソン)」を使って自動化してみました。

Contents

一括ダウンロード機能が、ない…

一括ダウンロード機能がないことを知ったとき、愕然としました。

「これ、手動で落とせってこと…?」みたいな感じで。

厳密に言えば、有料プランを解約しても、
アカウントが残っていれば過去の資料は閲覧できます。

ただ、今後サービスがどうなるかは分かりませんし、
自分の資料は、自分の手元にも置いておきたいと思っています。

経理データをfreeeに移管したものの、クラウドBoxにしかない資料もあったため、
ダウンロードはしたい。

でも、標準機能ではできない。

ということで、ChatGPTに相談しつつ、Pythonで解決しました。

Pythonを動かすための最低限の準備

ExcelのVBAやGASよりも、
Pythonの方がハードルが高いイメージがあります。

ExcelやGoogleスプレッドシートはすぐに使い始められる一方で、
Pythonは別途インストールが必要だったり、準備の段階で挫折することも多いような…。

(かくいう私も、Pythonの導入段階で何度か失敗し、やめたことがあります)


今回、私が使ったものは主に次の3つです。

  1. Python
  2. VS Code
  3. Playwright

まず、「Python」のインストールをします。
公式サイトからインストールできます。

コードを書く・実行するために、私は「VS Code」も使いました。
必須ではありませんが、コードを開いたり、エラーを確認したりするには使いやすいです。
※こちらもMicrosoft公式サイトからインストール可能

今回のコードは、ブラウザを自動操作するために「Playwright」という仕組みを使っています。

そのため、最初にPowerShellで次の2つを実行します。

Windowsキーを押し、「PowerShell」と検索して起動します。

PowerShellが開いたら、以下のコマンドを入力してEnterキーを押します。

まず、Pythonからブラウザを操作するための道具である「Playwright」を入れます。

py -m pip install playwright

続けて、
Playwrightが実際に操作するためのブラウザ「Chromium」を入れます。

py -m playwright install chromium

これで、今回のPythonコードを動かすための最低限の準備は終わりです。

ChatGPTと一緒にコードを作った流れ

ChatGPTに指示した流れは、以下のとおりです。

  1. 「PythonでMFクラウドBoxの証憑をまとめて取り出したい」と伝える
  2. 年ごとにフォルダを分け、ファイル名を「取引日・取引先・金額・元ファイル名」にしたいと追加で指定する
  3. コードを作ってもらったあと、まず3件だけ実行し、問題がないか確認する
  4. 実際に並べてみると元ファイル名は不要だと感じたため、ファイル名の仕様を変更してから全件を保存する

最初から完成品を目指さず、少しずつ修正を加えていくといった形です。

最初は起動しなかったり、エラーも出ることが多いです。
(今回も何回か軌道修正しています)

まずは3件だけダウンロードしてみる

以下は、私のWindows環境で動作を確認したコードです。
マネーフォワードの画面変更や利用環境によって、動かなくなる可能性がありますが、参考までに共有します。

mf_cloudbox_backup_public.py

まず、上記のファイルをデスクトップにダウンロードしてください。

いきなり全件を実行するのは少し怖いので、
まずは3件だけ試してみましょう。

うまく動かなければ、この段階で修正できます。

具体的には、PowerShellで以下を入力します。

cd ([Environment]::GetFolderPath("Desktop"))
$env:MF_BOX_MAX_FILES="3"
py .\mf_cloudbox_backup_public.py

上から順に、

  1. PowerShellの場所をデスクトップへ移動する
  2. ダウンロード件数を3件に設定する
  3. Pythonファイルを実行する

という意味です。

実行するとマネーフォワードのログイン画面が開きます。

登録しているID/パスワードでログインします。

このような画面までたどり着いたら、1件目のファイルをクリックして詳細画面を開きます。

PowerShellに表示された指示に従い、Enterキーを押します。

成功すると、このような形で「ダウンロード」フォルダに証憑が保存されます。


3件が問題なくダウンロードできたら、次は全件を実行します。

cd ([Environment]::GetFolderPath("Desktop"))
$env:MF_BOX_MAX_FILES="0"
py .\mf_cloudbox_backup_public.py

ファイル名の形式などを変えたいときは、AIをうまく使ってみて更新も試してみていただければと思います。

まとめ

このような「判断を伴わないような手作業」こそ、
最優先で自動化していくべきものかなと思います。

Web操作系だとRPAを使うことが多かったですが、
最近はPythonの方が使いやすい(メンテナンスもしやすい)かなぁと。

Pythonアレルギー的なところもありましたが、
使っていくうちに徐々に免疫ができてきたような気がします。

合わないかも、と思ってもたまに触れてみると意外と大丈夫なこともあるので、
諦めないでほどほどに付き合ってみるのも大切かもしれません。

では、また次回。

編集後記

◇日記
 昨日はお客様との初回面談。
 その後、申告対応。

 お伝えした納付番号の下一桁がなぜか誤っており、すぐに訂正の連絡を…。
 チェックリストに事前確認を追加しました…。

◇ブログネタ経緯
 作ったコードをもとに執筆を。

◇1日1新
 Python×マネーフォワードクラウドBOX

よかったらシェアしてね!
  • URLをコピーしました!
Contents