毎月発行される請求書やクレジットカードの利用明細は、会計処理に欠かせない資料です。
一方、発行元ごとにウェブサイトへログインし、対象月を選び、PDFをダウンロードして所定のフォルダへ保存する作業には、少しずつ時間がかかります。
1件ごとの負担は小さくても、取得先が増えると、毎月忘れずに処理するための管理も必要です。
そこで当事務所では、複数のウェブサイトから請求書、領収書、カード利用明細を取得し、決められた場所へ保存する仕組みを作りました。
今回は、自動化を始めた理由、Power Automate Desktopから方法を変更した経緯、ChatGPTと人がどのように役割を分担したかを紹介します。
請求書の取得は、少量でも繰り返し発生する
請求書やカード利用明細の取得には、一般に次のような作業が必要です。
- 発行元のウェブサイトを開く
- ログインする
- 請求書や利用明細の画面へ移動する
- 対象となる年月を選ぶ
- PDFをダウンロードする
- 内容が分かるファイル名へ変更する
- 決められたフォルダへ保存する
毎月同じ操作を行うため、自動化との相性がよい業務です。
ただし、ウェブサイトごとに画面構成やダウンロード方法が異なります。ログイン状態の管理、対象月の判定、同じPDFを二重に保存しないための確認なども必要でした。
今回使用した自動化ツール
今回の自動化では、Power Automate Desktop(パワーオートメート・デスクトップ、以下「PAD」)、Python(パイソン)、Playwright(プレイライト)というツールや技術を使用しました。
それぞれの位置づけと今回の役割は、次のとおりです。
| 名称 | 提供・管理主体 | 概要 | 今回の使い方 |
|---|---|---|---|
| Power Automate Desktop | Microsoft | Windowsパソコン上の操作を自動化するためのツール | 従来の請求書取得処理に使用 |
| Python | Python Software Foundationを中心とするオープンソース・コミュニティ | 業務の流れや処理内容をプログラムとして記述できるプログラミング言語 | 対象月の判定、ファイル名の変更、保存、重複確認、ログの記録などに使用 |
| Playwright | Microsoftが開発するオープンソースプロジェクト | プログラムからウェブブラウザーを操作するためのライブラリ | ウェブサイトを開き、画面を移動してPDFを取得する処理に使用 |
Power Automate Desktopは、画面上の操作を組み合わせながら処理を作成できるため、プログラミングに慣れていない場合でも比較的取り組みやすいツールです。
Pythonは特定企業の業務自動化製品ではなく、世界中で利用されているオープンソースのプログラミング言語です。Python Software Foundationという非営利団体が、Pythonの普及、保護、発展やコミュニティの支援を行っています。
今回の仕組みでは、Pythonが対象月の判定、ファイルの保存、重複確認、ログの記録など、処理全体を管理する役割を担っています。
Playwrightは、Microsoftが開発する、ウェブブラウザーの操作を自動化するためのオープンソースのライブラリです。
人がブラウザー上で行う「ページを開く」「ボタンを押す」「対象月を選ぶ」「PDFをダウンロードする」といった操作を、Pythonから実行するために使用しました。
今回の仕組みを簡単に表すと、Pythonで全体の処理を組み立て、その中からPlaywrightを使ってブラウザーを操作する構成です。
PADの修正よりPythonで作り直す方が短時間だった
一部の処理については、もともとPADを使って自動化していました。
PADは、画面上の操作を組み合わせてフローを作成できるため、プログラミングに慣れていない場合でも比較的取り組みやすいツールです。
しかし、継続して利用していると、ウェブサイトの画面構成やボタンの位置が変わり、それまで動いていたフローが機能しなくなることがあります。
今回も、正常に動かなくなったPADのフローがあり、まずはChatGPTと相談しながら修正を試みました。
フローの画面や各アクションの設定を確認し、ChatGPTから修正方法の提案を受け、それを私がPADへ反映して動作を確認しました。期待した結果にならなければ、再び画面や設定内容をChatGPTへ伝え、別の修正を試します。
PADのフローをChatGPTが直接確認して修正したわけではないため、このやり取りには相当の時間がかかりました。
その後、比較のために、同じ処理をPythonとPlaywrightで作り直してみました。
PythonのコードはChatGPTに作成を任せることができます。私が実現したい処理と実際の画面の動きを伝え、ChatGPTが提示したコードを実行して、その結果を基に修正を重ねました。
実際に進めてみると、既存のPADフローをChatGPTと一緒に修正するよりも、同じ処理をPythonとPlaywrightで改めて作る方が短い時間で完成しました。
これは、一般的にPADよりPythonの方が常に優れているという意味ではありません。
今回の進め方では、PADの各アクションや設定内容を画面で確認しながら一つずつ修正するよりも、ChatGPTにPythonコードを作成してもらい、実行結果を基にコード全体を調整する方が、ChatGPTとの協働に適していました。
そこで、当初はPADの既存フローを修正して利用することも考えていましたが、今後の追加やメンテナンスも踏まえ、PythonとPlaywrightを中心とした仕組みへ切り替えることにしました。
取得先が増えた場合にも、既存のコードを参考にして新しい処理を作成できます。また、保存、重複確認、ログの記録など、複数の処理に共通する部分をまとめやすいことも、Pythonへ切り替えた理由です。
今回自動化した6つの業務
今回、自動取得の仕組みを整えたのは、次の6つです。
| 対象 | 利用しているサービスの概要 | 自動化した処理 |
|---|---|---|
| エッサム | 税理士・会計事務所向けサービス | 利用料金に関する領収書の取得 |
| ストレージサービス | 書類などの保管サービス | 保管サービスに関する請求書の取得 |
| ベルテクノス | クラウドPBX等のサービス | 利用料金に関する領収書の取得 |
| ビューカード | クレジットカード | カード利用明細PDFの取得 |
| 三井住友カード | クレジットカード | カード利用明細PDFの取得 |
| 三菱UFJニコス | クレジットカード | カード利用明細PDFの取得 |
対象によって、メールの受信を確認してから取得するもの、ウェブサイトから対象月のPDFを探すもの、保存時にファイル名を整えるものなど、必要な処理は異なります。
一方で、PDFの保存、重複確認、処理結果の記録などには共通する部分があります。
最終的には、それぞれの処理を個別に実行するだけでなく、複数の処理をまとめて実行し、成功またはエラーを確認できる形に整理しました。
自動化のアイデアをChatGPTと形にした
今回の自動化では、最初から完成した仕様書があったわけではありません。
まず、私が「毎月行っている請求書取得を自動化できないか」という目的を示し、現在の作業内容や保存方法をChatGPTへ伝えました。
ChatGPTとの対話を通じて、次のような点を順番に決めています。
- どのメールやウェブサイトを処理の対象にするか
- どのPDFを取得するか
- 対象月をどのように判定するか
- ファイル名をどのような形式にするか
- どのフォルダへ保存するか
- 重複取得をどのように防ぐか
- エラーをどのように記録するか
- 複数の処理をどのようにまとめて実行するか
ChatGPTは、この内容を基に、プログラムの構成、Pythonコード、操作手順、エラーが発生した場合の修正案を提示しました。
私が実際にプログラムを動かし、表示された画面や実行結果をChatGPTへ伝え、それを踏まえて再度修正するという流れを繰り返しました。
アイデアは人、設計と指示はChatGPT、手と目は人
今回の役割分担を端的に表すと、次のようになります。
- 自動化のアイデアと目的を決める:人
- 業務上の条件と最終的な判断を行う:人
- アイデアを仕様やコードへ落とし込む:ChatGPT
- 次に必要な操作や修正方法を示す:ChatGPT
- PC上でコードを保存し、実行する:人
- 画面や取得結果を確認する:人
私が自動化のアイデアと最終判断を担い、ChatGPTがそれを形にするための設計図、コード、操作手順を作成しました。
一方、ChatGPTが当事務所のPCを直接操作したわけではありません。コードを保存し、コマンドを実行する「手」と、画面やPDFを確認する「目」は、私自身が担当しました。
「AIがすべて自動化した」というよりも、人が目的と判断を持ち、ChatGPTを設計者・指示者として利用しながら、仕組みを完成させたというのが実態に近いと思います。
今回、ChatGPTを利用した理由
CodexやClaude Codeのようなコーディングエージェントをローカル環境で利用すれば、プロジェクト内のファイルを確認し、コードの編集、プログラムの実行、エラーログの確認まで行わせることができます。
そのため、今回私が担当した「手」と「目」の一部をAIに任せ、コードのコピーや実行結果の受け渡しを減らせた可能性があります。
それでも今回は、ChatGPTからコードと手順の提示を受け、人が確認しながら実行する方法を選びました。
当事務所では、AIエージェントにPCを操作させる場合、税務・会計などの通常業務に使用するPCとは分けた専用PCを使用しています。
今回は通常業務用PC上で開発を進めたため、AIエージェントにPCの操作を直接任せず、ChatGPTの提案内容を私が確認してから実行しました。
ChatGPTだから一律に安全ということではありません。AIに与える権限、使用するPC、認証情報、保存データなどを考慮し、今回の作業に合う利用方法を選んだということです。
ログインや最終確認は人が行う
プログラムで処理できる部分が増えても、すべてを無確認で実行してよいわけではありません。
今回も、初回ログインや認証、実際に取得されたPDFの確認などは人が行いました。
特に確認が必要なのは、次のような点です。
- 正しい発行元から取得しているか
- 対象月が合っているか
- PDFが破損していないか
- ファイル名が正しいか
- 同じ書類が重複していないか
- 保存先が正しいか
- エラーが記録されていないか
プログラムが「正常終了」と表示しても、取得した書類が業務上正しいとは限りません。
自動化によって操作を減らしつつ、重要な結果は人が確認する運用にしています。
自動化して分かったこと
今回の作業では、最初の1件を完成させるまでに、ログイン方法、PDFの取得方法、ファイル名、保存先などを一つずつ確認しました。
2件目以降は、最初に作った仕組みを参考にできたため、共通化できる部分が徐々に増えていきました。
また、複数の取得処理をまとめて実行し、結果をログへ残す仕組みを整えたことで、「自動化プログラムを動かす作業」そのものも簡素化できました。
一方、ウェブサイトの仕様は今後も変わる可能性があります。自動化は一度作れば終わりではなく、エラーを確認し、必要に応じて修正できる状態にしておくことが重要です。
まとめ
当事務所では、これまでPADで行っていた処理を見直し、PythonとPlaywrightを使って、請求書、領収書、カード利用明細を取得する仕組みを整えました。
今回の役割分担は、次のとおりです。
- アイデアと業務上の判断は人
- 設計、コード、操作手順の作成はChatGPT
- PCを操作する手と、結果を確認する目は人
- 完成後の定期処理はPythonなどのプログラム
AIにすべてを任せたのではなく、人が目的と確認責任を持ったうえで、ChatGPTを設計者・指示者として利用したことが、今回の自動化の特徴です。
また、AIエージェントにPCを直接操作させる場合は、通常業務用PCとは分けるという当事務所の運用方針も維持しました。
次回は、エッサム、ストレージサービス、ベルテクノスの請求書・領収書を、どのような考え方で自動取得する仕組みにしたのかを紹介します。
※本記事は、当事務所で実施した事例を基に紹介しています。ウェブサイトの仕様、利用規約、認証方法などはサービスによって異なります。自動化を行う場合は、各サービスの利用条件を確認し、認証情報や取得データを適切に管理する必要があります。
新星パートナーズ会計事務所
代表・税理士 井河 伸郎
税務・会計に関する記事は、専門家の立場から内容を確認しています。
本記事は、一般的な情報の提供を目的としています。個別の取引や税務上の取扱いについては、契約内容や事実関係によって判断が異なる場合があります。また、掲載内容は記事作成時点の情報に基づいています。最新の情報は、各サービスの公式サイトや関係機関の公表資料をご確認ください。

