UiPathでExcelデータ→e-Tax開始届(作成・提出・利用者識別番号取得)

e-Taxをやるには、手続きが必要です。
Excelデータがあれば、RPAツール、UiPathで自動化できます。

e-Taxをするために必要な手続き

e-Taxとは、国税庁のサービスで、ネットを使って税金の手続きができるものです。
確定申告や、届け出、納税などができます。

このe-Taxをやる前に、その開始届というものが必要です。

「開始届」というと、仰々しいのですが、まあ、登録のようなものです。
氏名や、生年月日などを登録すると、ID(利用者識別番号)が表示されます。

このIDと、パスワード(手続きの中で自分で決める)で、e-Taxができるのです。

ex-it_22

なお、このIDを保存、メモしておかなければいけません。
ID、パスワードを完全に忘れた場合、ネットで手続きできますが、郵送「ゆうそう」で新しいID・パスワードが届きます……。
大昔(2006年ごろ)は、この最初の表示もなく、お客様の元へ、e-TaxのインストールCDとIDの通知が郵送で1か月ほどあとに届いていました。

まあ、ましになったものです。

ただ、この画面、ひたすらペチペチ入力しなければいけません。
image

データベースとして、Excelや税務ソフトへすでに入力していたとしても、そのデータを活用できず、入力する必要があるのです。
なんたること……。
(連動している税務ソフトだとそのまま出せますが)

image

こういった、Excelとネットサービス(またはソフト)を使う仕事を効率化するには、RPAが最適です。

RPAの3つの誤解。かんたんじゃない・労働者じゃない・AIじゃない | EX-IT

UiPath×Excel。Excelデータを読み取り、ブラウザで交通費検索。無料で使えるRPAツール。 | EX-IT

今回も、RPAツール、UiPathを使っています。

UiPathでe-Tax開始届のしくみをつくる

全体の流れは次のようなものです。
(今回のロボットのイメージは、ステカ〇キング)

今回は個人の場合を想定していますが、法人も同様にできます。

image

Excelにあるデータを一括で読み取り、

image

それを1つずつe-Taxに書き込んで、

image

出てきたID、パスワードをExcelへ書き込むという流れです。

image

Excelのデータの数だけ、正確にかつ、自動的に処理できます。
プログラミングは、いっぺんにつくるのではなく、小さくつくりますので、まずは、この部分をつくっていきましょう。

image

ブラウザ(インターネットエクスプローラーが標準であり、無難です)で、該当のページを開きます。

このページから始めます。
image

利用可能時間外

ここで、[次へ]をクリックすると、URLは変わらず画面は変わるという・・・変なしくみなので中途半端なここからスタートです。

e-Taxサイトへ入力

UiPathの[レコーディング]→[ウェブ]で、

image

[レコーディング]をクリックして、実際に入力していき、記録します。

image

この画面で[次へ]をクリックし、

image

フォームのボックスをクリックし、「入力値を入力してください」の下のボックスに適当なデータを入れていきます。
(この部分はあとで、Excelから読み込んだデータに差し替えます)

image

保存すると、このように、記録したものがプログラムになるのです。
ここで、編集、削除もできます。
なお、このスクリーンショットは、その記録したときのものが参考として保存されているので、さほど気にしないほうがいいでしょう。

image

生年月日もこのように記録できます。

image

職業を入れて、[次へ]をクリックして、次の画面にうつります。

ただ、UiPathのスピードに、e-Taxがついてこれません。
エラーが出てしまいます。

ex-it_01

ダメもとでe-Taxのヘルプに問い合わせるも、的を得た回答はなく。
Chromeで試したり、Pythonで試したりしてもダメでした。
実際に入力すると、うまくいきますので、ブラウザの設定やPCのせいではありません。
となると、考えられるのは、ヒト(私ですが)を超えたスピードで入力していること。

RPAではこういったことはよくあり、そんなときは、[待機]というプログラム(アクティビティ)を使います。
英語版のときは、「Delay」でかっこよかったのですが……。

image

[待機]をクリックして、右のプロパティの[期間]に時間を入力すれば、その時間、UiPathは処理を止めて待つのです。
5秒、3秒、2秒と試してみて、3秒が安定したので3秒にしています。

この[待機]は、記録がすべて終わった後、テストしつつ入れていきましょう。

image

次の画面も同様に記録していきます。

image

ここで[次へ]をクリックする前にも

image

[待機]です。

image

クリックすると、こういったメッセージが出てきます。
住所から管轄の税務署を表示するので、その確認です。
(住所から自動表示してるのでそのままでいいやんという感じですが)

image

ここもレコーディングしていれば、このボックスを選択(アタッチ)して、クリックということを記録できます。

image

次の画面は暗証番号(パスワード)、納税用確認番号(納税のときに必要)を入力します。
今回は固定のものにしました。

image

やはり、[待機]です。
さきほどの[待機]をCtrl+C、Ctrl+Vでコピペできます。

image

送信の前にも[待機]。

image

送信後は、ID(利用者識別番号)が表示されます。

ex-it_22

ID(利用者識別番号)、パスワード(暗証番号)の抽出

こういったデータを抽出するときは、[データスクレイピング]を使いましょう。
(いったんレコーディングを一時停止=ESCします)
image

該当の場所をクリックすると、次のようなメッセージが出るので[はい]を選びます。
こういった表形式のデータのときは、「全部いるよね?」と聞いてくれるわけです。

ex102

次のメッセージは[いいえ]です。
1ページしかないので。

image

どういったデータが抽出されたか確認し、[終了]を押すと、

image

このように記録されている画面が確認できます。

image

ExcelへIDを書込

次に、この抽出したデータをExcelに書き込むところをつくります。

なお、Excelは、こういったデータです。
見出しを必ずつけ、空白の行がないようにしましょう。

image

image

image

個人的に気持ち悪いのですが、住所は全角です。
(半角で入れて入力時に全角にすることもできるにはできますが)
郵便番号、IDは、0ではじまるものもあるので、セルの書式設定(Ctrl+1)で[表示形式]を「文字列」にしておきましょう。

image

Excelに書き込むには、該当のファイルを開く必要があります。

UiPathで、Excelファイルを開く、というよりもデータを読み取るのは、[Excelアプリケーションスコープ]です。
左側のアクティビティからドラッグして、ファイルを選択しましょう。
Excelファイルは開きっぱなしでも大丈夫です。
ただ、保存した最新の状況で読み取ります。

image

セルへ書き込むのは、[セルへ書き込む]です。
そのまんま。
英語版の[Write Cell]のほうが好きですが。

image

ここでは、シート「Sheet1」のセル「A1」に〇〇を書き込むという設定をします。
この〇〇は、自分で設定しなければいけません。

さきほど抽出した、[構造化データを抽出]をクリックすると、右側のプロパティの「出力」の「データテーブル」に「ExtractDataTable」という名前がついています(変数といいます)。
これは自動的につくものです。
(すべて表示されていません。「データテーブル」の右の…とクリックすれば大きく表示できます)

image

この名前を使ってデータを書き込みます。
まずは、左下の[変数]というメニューをクリックし、「ExtractDataTable」のスコープを「シーケンス」(全体)にしておきましょう。
スコープとは、変数の範囲でありUiPathでは、ごく最小限の範囲が最初に設定されています。
これを別の場所(Excel、ブラウザなど)で使うなら、スコープを広げておかないといけないのです。
迷ったり、エラーがでたりしたら、変数のスコープを調べましょう。

image

さらに、もう1つ設定があります。
データを抽出するこの画面は、個別の名前がついているので、Excelデータの2行目特有のものなのです。
3行目、4行目・・・と処理しても、1行目のデータをとってきてしまいます。

ex-it_22

UiPathでは、セレクターという機能で、どの画面を操作するかを指定しているので、これを汎用性のあるもの、他のデータでも使えるように変更しなければいけません。
ここは、プログラムをテストしてみて、「あ、そうか」と試行錯誤する部分です。
(これ、サイトのつくり方によるもので、個別の名前がついてなければ、こんな苦労はしなくてすみます。ソフトでも税務ソフトや会計ソフトといったイケてないものほど、こうなっています……)

抽出している部分の「ブラウザーにアタッチ」の右下の三本線のアイコンをクリックし、[セレクターを編集]を選びます。

image

このように指定されています。
このうち、上のhtmlwindowsnameが固有のものなので、

image

このチェックを外せば、他のデータでも使えるようになるのです。
(titleが個別になっているケースもあります)

image

やはり「かんたんじゃないよね、RPA。」って感じですね。

ようやく取り出せたので、[セルに書き込む]に入れていきます。

eを入れると、変数の一覧が出てくるので、「ExtractDataTable」を選びます。

image

IDは16桁です。
別の税務処理を考えると、4桁ずつとっておいたほうがいいので、ここでは4桁ずつ4つにしています。

セルP2に、最初の4桁を入れていきましょう。

image

「ExtractDataTable(0)(1).tostring」と指定します。

image

「ExtractDataTable」はこうなっており、0行1列目を文字列にするという意味です。
(string=文字列)

プログラムでは、0から数えます。

ex-it_73

同様に、他のID、パスワードも指定すると、

image

このように書き込まれるわけです。

image

1つ目(2行目)のデータを読み取り、e-Taxに入力して、手続きし、IDをとり、Excelに書き込むところまでできました。

UiPathで、Excel→e-Tax開始届のしくみをつくる

次は、一括読取の部分をつくり、繰り返しの部分をつくっていきます。

image

Excelから一括読取

Excelからの一括読取は、UiPathではかなり楽です。
[Excelアプリケーションスコープ]で、ファイルを指定し、[範囲を読み込む]をドラッグし、シート名と、セルの範囲を””とすれば、そのシートにあるデータをすべて読み取ってくれます。

クリックして、右のプロパティで、データテーブルに名前を付けておきましょう。
ここではExcelTableにしました。
(任意です)

これは自動的にはやってくれません。
名前をつける、つまり変数にするには、データテーブルの右のボックスでCtrl+kを押して入力すると設定できます。
スコープも全体にしておきましょう。

image

繰り返しの部分をつくる

UiPathで、繰り返しは、[繰り返し(各行)]です。

ドラッグすると、「コレクション」の右が空欄になっています。

image

ここに、先ほどのExcelTableを入力し、これまでつくったプログラムをまとめてすべて[繰り返し(各行)]に中に入れましょう。
・一括読取は、1回のみ
・「ブラウザを開いて入力して、IDを抽出して、書き込む」は繰り返しやるので、

その部分のみを入れます。

image

繰り返し用にプログラムを変更

繰り返しの中身を見てみると、このようになっているので、繰り返しに対応していません。

これだと、3行目も、4行目も、5行目も、「キンニク」と入ってしまいます。

image

[繰り返し(各行)]の中では、row(〇〇).ToStringを使えます。
〇〇に入るのは、見出しです。
そのために見出しを付けています。

image

row(”セイ”).ToString

と入れれば、繰り返しの1回目は、「キンニク」、2回目は、「ウラメシ」と入るのです。
見出しは、文字列なので、ダブルコーテーションで囲みます。

image

生年月日、住所も同様です。

image

Excelへ書き込む位置の指定

Excelへ書き込む位置も2行目、3行目、4行目・・・と変化しなけれいけません。

image

2行目は、P2、3行目は、P3・・・なので、

Pにくっつける数字を、2、3、4・・と増やしていきます。

こういったときに使うのが[代入]です。
プログラムの一番上に、変数を設定して、

image

次のように、2と入れましょう。
最初は、2行目なので、2です。

image

そして、繰り返し部分の”P2”を

image

“P”+Rownumber

に変えていきます。
最初は、2なので、”P”+2で、”P2”です。

image

同様に、他のIDやパスワードも変えていきます。

image

そして、最後に、[代入]で、

Rownumber=Rownumber+1

といれます。

=は、「等しい」ではなく、文字通り「代入する」です。
この場合は、Rownumberに、Rownumber+1を代入する、つまり、RownumberにそれまでのRownumberである2+1の3を入れるという意味になります。

まあ、細かい内容はともかく、指定する行を1つずつずらすには、このパターンを使うと思っておいても大丈夫です。
プログラムと人生は、「こだわり」と「ま、いっか」のバランスですので、ここは、「ま、いっか」でもいいかと。

image

最後に、[データテーブルをクリア]を入れて、「ExtractDataTable」をいったんクリアしておきます。

image

かんたんなようで、歯ごたえはありますが、もしこういった仕事があるなら、ぜひやってみていただければ。

導入は、こちらの記事を参考にしていただければと思います。
(英語版での解説ですが)

UiPath×Excel。Excelデータを読み取り、ブラウザで交通費検索。無料で使えるRPAツール。 | EX-IT

こういうのがあると、仕事をガンガン増やしても、e-Taxの手続きは自動でできるのですが、それはそれ、これはこれです。
仕事を増やすために効率化するのではないので。
AI、RPAの時代、仕事を増やさないスキルも必要でしょうね。
(これは、現状のITの時代にも言えます)


■編集後記
昨日は、新アイテムが到着。
ドルビーアトモス対応のバーチャルスピーカーです。
早速設定しました。

映画もゲームも迫力のあるいい音に。
感動です。

■昨日の1日1新
※詳細は→「1日1新」

バッファローHDDをXboxOneXに
SONY HT-Z9F

■昨日の娘日記
昨日は、パパ嫌デー。
理由はわかりませんが、何をやってもダメで、しくしく泣き出すほど。
まあ、こういう日もあるのでしょうが……。