前回に引き続き、e-Taxメッセージボックス内の「確定申告等についてのお知らせ」を自動的にダウンロードする方法について解説します。
目次
まずは前回のおさらい
この時期、税理士のe-Taxメッセージボックスに納税者の方の
「確定申告等についてのお知らせ」
が大量に届くので、これをPower Automate for Desktop(以下「PAfD」)を使って自動的にPDFファイルにダウンロードできないか。
これが前回やろうとしていた内容でした。
そのために
- e-Taxへのログイン~メッセージボックスを表示
- メッセージボックスのデータを読み取り
- 表示させたいメッセージを判定する
- 対象となるメッセージをクリックした後、印刷機能を使ってPDFに保存
- ログアウトする
という流れでフローを作ることにしました。
注意すべき点などについて1~3までは前回確認しましたので、今回は4・5について確認をしていきます。
最大の難関は、クリックするリンクを指定する方法
対象となるメッセージをクリックする
メッセージボックス全体のデータを読み込んだ後、For eachとIfアクションを使って、対象となるメッセージを判定するところまでは前回確認しました。
次にやりたいのは
『対象となるメッセージだと判定された場合に、その行の「手続き名」欄のリンクをクリックする」
という作業です。
実際、フローを作る上でここが一番難しいところになります。
特定のリンクをクリックするためには、セレクターというものを設定する必要があります。
セレクターの詳細を説明していると長くなりますので、以前まとめた以下の記事を参照ください。
今回このリンクをクリックするためのセレクターは、次のように設定しています。
tbodyの後にある「tr:eq(%Count%)」がメッセージ内の行数を示しています。
対象と判定されたメッセージが実際に何行目かわかるように%Count%という変数をつくって、メッセージ名を判定するごとにPAfDが何行目になるか数えるようにしています。
具体的には、前回のFor eachとIfで判定するところで
- 判定を始める前にCountという変数をつくって0を入れておく
- 判定する度にCountの中の数字を1ずつ増やしていく
という作業をしています(なお2については「変数の設定」ではなく「変数を大きくする」アクションでも同じことができます)。
0から始めているのは、ルールとして0行目からカウントするためです。
つまり1行目が対象である場合にはtr:eq(0)とする必要があります。
なお、tr:eq(%Count%)の後にあるtr:eq(3)ですが、これは列番号を示しています。
今回はメッセージ全体を読み込んでいますので、クリックしたい列は左から4列目。
0から数え始めますのでtr:eq(3)は4列目を示しています。
このようにセレクターとCountという変数(変数名はCountでなくても大丈夫です)が正しく設定されていれば
「Webページのリンクをクリックします」アクション
で対象となる行のリンクをクリックすることができます。
リンクをクリックすると新しいタブが開きますので、このタブを操作できるように「新しいMicrosoftEdgeを起動する」アクション(Chromeを使っている場合には「新しいChromeを起動する」)でこのタブを操作できるようにしておきましょう。
なお、新しく開いてしまったタブの操作については以下の記事をご参照ください。
印刷機能を使ってPDFファイルに保存する際のファイル名
新しく開いたタブ(の中でさらに「申告のお知らせ画面へ」ボタンを押す必要があります)を印刷機能を使ってPDFファイルに保存すれば目的は達成ですが、せっかくなら保存したファイルが誰のものかわかるようファイル名にお客さんの名前をつけたいですよね。
お客さんの名前については、メッセージの5列目にデータがあります。
メッセージ名を判定するプロセスのところで、メッセージ全体から1行ずつデータを読み込み、読み込んだデータはCurrentItemという変数に保存されています。
CurrentItemの中の5列目のデータだけを取り出したいときは
CurrentItem[4]
という書き方でできます(最初の列は0から数えるので5列目は4になります)。
これを利用して
というやり方で保存するフォルダとファイル名を作ることができます。
(NewFolderという変数には、事前にデスクトップに作成したフォルダ名を入れています)
ここで作ったSaveFileNameという変数を印刷画面のファイル名欄に直接入力することにより、保存したいフォルダにお客さんの名前でPDFファイルが保存されます。
印刷する際の保存ファイル名の作成方法やプリンターを事前に指定する方法については、以下の記事をご参照ください。
なお、対象メッセージかどうか判定した後の処理についてはサブフローの「message_select_print」にまとめていますが、このように作っています。
対象のリンクをクリックしてPDFファイルに保存して、元のメッセージ一覧のページまで戻る処理になります。
印刷処理(PDFファイルへの保存)については、さらに別のフローを呼び出す形で処理していますが、この点については以下の記事をご参照ください。
ログアウト処理について
最後のログアウト処理ですが、e-Taxのメッセージボックスからログアウトする際には、次のような画面が表示されるため、画像認識を使わないと実はうまく操作できません。
なので、面倒なら手動でのログアウト処理で構わないと考えています。
今回の目的は、大量にある「確定申告等についてのお知らせ」をPDFファイルに自動的に保存することです。
税理士のメッセージボックスにこのお知らせがすべて届いている前提で作ってきましたので、ログアウト処理は1回しかありません。
1回だけの処理に悩んで時間を使うよりも、本当に自動化したい部分に力を注ぐべきです。
もし画像認識を使ってログアウトもしたいという方については、以下の記事をご参照ください。
単純繰返し作業を続けるか、自動化するかは自分次第
「確定申告等についてのお知らせ」を自動的にダウンロードするフローを作成する際の注意点について、前回と今回の2回で確認しました。
個人情報があるため実際の画面をお見せできない部分も多く、わかりづらい点があったかもしれませんが、ご了承ください。
また「今回の記事、やたら過去記事へのリンクが多いな」と思われたかもしれません。
実はRPAを使い始めてどうしてもやりたかった自動化が今回のダウンロード処理でした。
これをやるためにいろいろ調べた結果を記事にしてきましたので、ある意味今回の内容が、現時点での集大成であり私のRPAでの自動化の原点みたいなものです。
このように「これをやりたい」という思いがあれば、PAfDのような無料ツールが提供されていますので、自動化することは不可能ではありません。
「こんなメッセージをひとつずつダウンロードするのダルい」
と毎回単純作業を続けるか、将来のために時間を取って自動化に取り組むかは自分で決めることができます。
今回の内容をいきなり初心者の方が作るのは難しいかもしれませんが、
「自動化すればこんなこともできるんだ、便利!」
と思っていただけたのなら、最初の一歩を踏み出してみてはいかがでしょうか。
投稿者
-
大学卒業後、大手上場企業に入社し約19年間経理業務および経営管理業務を幅広く担当。
31歳のとき英国子会社に出向。その後チェコ・日本国内での勤務を経て、38歳のときスロバキア子会社に取締役として出向。30代のうち7年間を欧州で勤務。
40歳のときに会社を退職。その後3年で税理士資格を取得。
中小企業の経営者と数多く接する中で、業務効率化の支援だけではなく、経営者を総合的にサポートするコンサルティング能力の必要性を痛感し、「コンサル型税理士」(経営支援責任者)のスキルを習得。
現在はこのスキルを活かして、売上アップ支援から個人的な悩みの相談まで、幅広く経営者のお困りごとの解決に尽力中。
さらに、商工会議所での講師やWeb媒体を中心とした執筆活動など、税理士業務以外でも幅広く活動を行っている。
最新の投稿
- 弥生会計2024年9月15日弥生会計で複数階層の部門管理を使うには
- プログラミング2024年9月12日PythonでExcelファイル内の文字列を置換する
- Excel2024年9月8日Power Automate for DesktopでExcelファイルの文字列を置換する
- プログラミング2024年9月5日Pythonで金銭出納帳から弥生インポートデータを作成する