e-Taxをやるには、手続きが必要です。
Excelデータがあれば、RPAツール、UiPathで自動化できます。
e-Taxをするために必要な手続き
e-Taxとは、国税庁のサービスで、ネットを使って税金の手続きができるものです。
確定申告や、届け出、納税などができます。
このe-Taxをやる前に、その開始届というものが必要です。
「開始届」というと、仰々しいのですが、まあ、登録のようなものです。
氏名や、生年月日などを登録すると、ID(利用者識別番号)が表示されます。
このIDと、パスワード(手続きの中で自分で決める)で、e-Taxができるのです。
なお、このIDを保存、メモしておかなければいけません。
ID、パスワードを完全に忘れた場合、ネットで手続きできますが、郵送「ゆうそう」で新しいID・パスワードが届きます……。
大昔(2006年ごろ)は、この最初の表示もなく、お客様の元へ、e-TaxのインストールCDとIDの通知が郵送で1か月ほどあとに届いていました。
まあ、ましになったものです。
ただ、この画面、ひたすらペチペチ入力しなければいけません。
データベースとして、Excelや税務ソフトへすでに入力していたとしても、そのデータを活用できず、入力する必要があるのです。
なんたること……。
(連動している税務ソフトだとそのまま出せますが)
こういった、Excelとネットサービス(またはソフト)を使う仕事を効率化するには、RPAが最適です。
RPAの3つの誤解。かんたんじゃない・労働者じゃない・AIじゃない | EX-IT
UiPath×Excel。Excelデータを読み取り、ブラウザで交通費検索。無料で使えるRPAツール。 | EX-IT
今回も、RPAツール、UiPathを使っています。
UiPathでe-Tax開始届のしくみをつくる
全体の流れは次のようなものです。
(今回のロボットのイメージは、ステカ〇キング)
今回は個人の場合を想定していますが、法人も同様にできます。
Excelにあるデータを一括で読み取り、
それを1つずつe-Taxに書き込んで、
出てきたID、パスワードをExcelへ書き込むという流れです。
Excelのデータの数だけ、正確にかつ、自動的に処理できます。
プログラミングは、いっぺんにつくるのではなく、小さくつくりますので、まずは、この部分をつくっていきましょう。
ブラウザ(インターネットエクスプローラーが標準であり、無難です)で、該当のページを開きます。
このページから始めます。
https://kaishi.e-tax.nta.go.jp/SU_APP/lnk/kaishiShinkiKojin?SS000120
ここで、[次へ]をクリックすると、URLは変わらず画面は変わるという・・・変なしくみなので中途半端なここからスタートです。
e-Taxサイトへ入力
UiPathの[レコーディング]→[ウェブ]で、
[レコーディング]をクリックして、実際に入力していき、記録します。
この画面で[次へ]をクリックし、
フォームのボックスをクリックし、「入力値を入力してください」の下のボックスに適当なデータを入れていきます。
(この部分はあとで、Excelから読み込んだデータに差し替えます)
保存すると、このように、記録したものがプログラムになるのです。
ここで、編集、削除もできます。
なお、このスクリーンショットは、その記録したときのものが参考として保存されているので、さほど気にしないほうがいいでしょう。
生年月日もこのように記録できます。
職業を入れて、[次へ]をクリックして、次の画面にうつります。
ただ、UiPathのスピードに、e-Taxがついてこれません。
エラーが出てしまいます。
ダメもとでe-Taxのヘルプに問い合わせるも、的を得た回答はなく。
Chromeで試したり、Pythonで試したりしてもダメでした。
実際に入力すると、うまくいきますので、ブラウザの設定やPCのせいではありません。
となると、考えられるのは、ヒト(私ですが)を超えたスピードで入力していること。
RPAではこういったことはよくあり、そんなときは、[待機]というプログラム(アクティビティ)を使います。
英語版のときは、「Delay」でかっこよかったのですが……。
[待機]をクリックして、右のプロパティの[期間]に時間を入力すれば、その時間、UiPathは処理を止めて待つのです。
5秒、3秒、2秒と試してみて、3秒が安定したので3秒にしています。
この[待機]は、記録がすべて終わった後、テストしつつ入れていきましょう。
次の画面も同様に記録していきます。
ここで[次へ]をクリックする前にも
[待機]です。
クリックすると、こういったメッセージが出てきます。
住所から管轄の税務署を表示するので、その確認です。
(住所から自動表示してるのでそのままでいいやんという感じですが)
ここもレコーディングしていれば、このボックスを選択(アタッチ)して、クリックということを記録できます。
次の画面は暗証番号(パスワード)、納税用確認番号(納税のときに必要)を入力します。
今回は固定のものにしました。
やはり、[待機]です。
さきほどの[待機]をCtrl+C、Ctrl+Vでコピペできます。
送信の前にも[待機]。
送信後は、ID(利用者識別番号)が表示されます。
ID(利用者識別番号)、パスワード(暗証番号)の抽出
こういったデータを抽出するときは、[データスクレイピング]を使いましょう。
(いったんレコーディングを一時停止=ESCします)
該当の場所をクリックすると、次のようなメッセージが出るので[はい]を選びます。
こういった表形式のデータのときは、「全部いるよね?」と聞いてくれるわけです。
次のメッセージは[いいえ]です。
1ページしかないので。
どういったデータが抽出されたか確認し、[終了]を押すと、
このように記録されている画面が確認できます。
ExcelへIDを書込
次に、この抽出したデータをExcelに書き込むところをつくります。
なお、Excelは、こういったデータです。
見出しを必ずつけ、空白の行がないようにしましょう。
個人的に気持ち悪いのですが、住所は全角です。
(半角で入れて入力時に全角にすることもできるにはできますが)
郵便番号、IDは、0ではじまるものもあるので、セルの書式設定(Ctrl+1)で[表示形式]を「文字列」にしておきましょう。
Excelに書き込むには、該当のファイルを開く必要があります。
UiPathで、Excelファイルを開く、というよりもデータを読み取るのは、[Excelアプリケーションスコープ]です。
左側のアクティビティからドラッグして、ファイルを選択しましょう。
Excelファイルは開きっぱなしでも大丈夫です。
ただ、保存した最新の状況で読み取ります。
セルへ書き込むのは、[セルへ書き込む]です。
そのまんま。
英語版の[Write Cell]のほうが好きですが。
ここでは、シート「Sheet1」のセル「A1」に〇〇を書き込むという設定をします。
この〇〇は、自分で設定しなければいけません。
さきほど抽出した、[構造化データを抽出]をクリックすると、右側のプロパティの「出力」の「データテーブル」に「ExtractDataTable」という名前がついています(変数といいます)。
これは自動的につくものです。
(すべて表示されていません。「データテーブル」の右の…とクリックすれば大きく表示できます)
この名前を使ってデータを書き込みます。
まずは、左下の[変数]というメニューをクリックし、「ExtractDataTable」のスコープを「シーケンス」(全体)にしておきましょう。
スコープとは、変数の範囲でありUiPathでは、ごく最小限の範囲が最初に設定されています。
これを別の場所(Excel、ブラウザなど)で使うなら、スコープを広げておかないといけないのです。
迷ったり、エラーがでたりしたら、変数のスコープを調べましょう。
さらに、もう1つ設定があります。
データを抽出するこの画面は、個別の名前がついているので、Excelデータの2行目特有のものなのです。
3行目、4行目・・・と処理しても、1行目のデータをとってきてしまいます。
UiPathでは、セレクターという機能で、どの画面を操作するかを指定しているので、これを汎用性のあるもの、他のデータでも使えるように変更しなければいけません。
ここは、プログラムをテストしてみて、「あ、そうか」と試行錯誤する部分です。
(これ、サイトのつくり方によるもので、個別の名前がついてなければ、こんな苦労はしなくてすみます。ソフトでも税務ソフトや会計ソフトといったイケてないものほど、こうなっています……)
抽出している部分の「ブラウザーにアタッチ」の右下の三本線のアイコンをクリックし、[セレクターを編集]を選びます。
このように指定されています。
このうち、上のhtmlwindowsnameが固有のものなので、
このチェックを外せば、他のデータでも使えるようになるのです。
(titleが個別になっているケースもあります)
やはり「かんたんじゃないよね、RPA。」って感じですね。
ようやく取り出せたので、[セルに書き込む]に入れていきます。
eを入れると、変数の一覧が出てくるので、「ExtractDataTable」を選びます。
IDは16桁です。
別の税務処理を考えると、4桁ずつとっておいたほうがいいので、ここでは4桁ずつ4つにしています。
セルP2に、最初の4桁を入れていきましょう。
「ExtractDataTable(0)(1).tostring」と指定します。
「ExtractDataTable」はこうなっており、0行1列目を文字列にするという意味です。
(string=文字列)
プログラムでは、0から数えます。
同様に、他のID、パスワードも指定すると、
このように書き込まれるわけです。
1つ目(2行目)のデータを読み取り、e-Taxに入力して、手続きし、IDをとり、Excelに書き込むところまでできました。
UiPathで、Excel→e-Tax開始届のしくみをつくる
次は、一括読取の部分をつくり、繰り返しの部分をつくっていきます。
Excelから一括読取
Excelからの一括読取は、UiPathではかなり楽です。
[Excelアプリケーションスコープ]で、ファイルを指定し、[範囲を読み込む]をドラッグし、シート名と、セルの範囲を””とすれば、そのシートにあるデータをすべて読み取ってくれます。
クリックして、右のプロパティで、データテーブルに名前を付けておきましょう。
ここではExcelTableにしました。
(任意です)
これは自動的にはやってくれません。
名前をつける、つまり変数にするには、データテーブルの右のボックスでCtrl+kを押して入力すると設定できます。
スコープも全体にしておきましょう。
繰り返しの部分をつくる
UiPathで、繰り返しは、[繰り返し(各行)]です。
ドラッグすると、「コレクション」の右が空欄になっています。
ここに、先ほどのExcelTableを入力し、これまでつくったプログラムをまとめてすべて[繰り返し(各行)]に中に入れましょう。
・一括読取は、1回のみ
・「ブラウザを開いて入力して、IDを抽出して、書き込む」は繰り返しやるので、
その部分のみを入れます。
繰り返し用にプログラムを変更
繰り返しの中身を見てみると、このようになっているので、繰り返しに対応していません。
これだと、3行目も、4行目も、5行目も、「キンニク」と入ってしまいます。
[繰り返し(各行)]の中では、row(〇〇).ToStringを使えます。〇〇に入るのは、見出しです。
そのために見出しを付けています。
row(”セイ”).ToString
と入れれば、繰り返しの1回目は、「キンニク」、2回目は、「ウラメシ」と入るのです。
見出しは、文字列なので、ダブルコーテーションで囲みます。
生年月日、住所も同様です。
Excelへ書き込む位置の指定
Excelへ書き込む位置も2行目、3行目、4行目・・・と変化しなけれいけません。
2行目は、P2、3行目は、P3・・・なので、
Pにくっつける数字を、2、3、4・・と増やしていきます。
こういったときに使うのが[代入]です。
プログラムの一番上に、変数を設定して、
次のように、2と入れましょう。
最初は、2行目なので、2です。
そして、繰り返し部分の”P2”を
“P”+Rownumber
に変えていきます。
最初は、2なので、”P”+2で、”P2”です。
同様に、他のIDやパスワードも変えていきます。
そして、最後に、[代入]で、
Rownumber=Rownumber+1
といれます。
=は、「等しい」ではなく、文字通り「代入する」です。
この場合は、Rownumberに、Rownumber+1を代入する、つまり、RownumberにそれまでのRownumberである2+1の3を入れるという意味になります。
まあ、細かい内容はともかく、指定する行を1つずつずらすには、このパターンを使うと思っておいても大丈夫です。
プログラムと人生は、「こだわり」と「ま、いっか」のバランスですので、ここは、「ま、いっか」でもいいかと。
最後に、[データテーブルをクリア]を入れて、「ExtractDataTable」をいったんクリアしておきます。
かんたんなようで、歯ごたえはありますが、もしこういった仕事があるなら、ぜひやってみていただければ。
導入は、こちらの記事を参考にしていただければと思います。
(英語版での解説ですが)
UiPath×Excel。Excelデータを読み取り、ブラウザで交通費検索。無料で使えるRPAツール。 | EX-IT
こういうのがあると、仕事をガンガン増やしても、e-Taxの手続きは自動でできるのですが、それはそれ、これはこれです。
仕事を増やすために効率化するのではないので。
AI、RPAの時代、仕事を増やさないスキルも必要でしょうね。
(これは、現状のITの時代にも言えます)
昨日は、新アイテムが到着。
ドルビーアトモス対応のバーチャルスピーカーです。
早速設定しました。
映画もゲームも迫力のあるいい音に。
感動です。
■昨日の1日1新
※詳細は→「1日1新」
バッファローHDDをXboxOneXに
SONY HT-Z9F
■昨日の娘日記
昨日は、パパ嫌デー。
理由はわかりませんが、何をやってもダメで、しくしく泣き出すほど。
まあ、こういう日もあるのでしょうが……。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方