UiPath×税理士。「源泉所得税のe-Tax送信→お客様へメール送信」を自動化。

異なるソフトを使って自動化できるのがRPAの魅力。
UiPathで、源泉所得税の支払業務を自動化してみました。

※スクリーンショットで作成

源泉所得税納付の業務フロー

源泉所得税とは、一般的に、給料(役員報酬含む)、賞与、そして、報酬(税理士等、外注)を支払ったときに天引きして預かる税金です。
その税金を、給料や報酬を支払った日の翌月10日に、税務署へ払います(銀行等を通じて)。

毎月払うのは大変です。
そこで、従業員が10人未満なら、年2回、まとめて払ってもいいよという制度があります。
(事前の申請が必要であり、給料・賞与、税理士等への報酬のみが対象です。)

今回のケースは、このまとめて払う場合です。
税理士がこの業務をやる場合、次のようなフローでやっています。
2018-07-05_17h00_54

①データ送信

税理士が源泉所得税のデータを集計し、e-Taxソフト(web版)で送信する

②納税データ受領

納税できる、4種類のデータをe-Taxソフト(web版)から受け取る

③納税データ送信

お客様へメールで送る

④納税

お客様がネットバンク(ATMでも可)で支払う

■スポンサードリンク

※ダイレクト納付という手続きをやっていれば、③の段階で納税することもできます。
※源泉所得税が0という場合でも①の送信は必要です。
(送らないと税務署から書類や電話が来る可能性が高いので余計めんどくさいことに)
※こちらの記事に、e-Taxソフト(Web版)の使い方はまとめてあります。

源泉所得税クレジットカード納付マニュアル | EX-IT

昔は、納付書といわれる紙に書いていたので、それに比べると楽にはなりました。
窓口にもいかなくてすみます。

この流れを、RPAツール、UiPathで自動化してみました。

源泉所得税納付をUiPathで自動化する流れ

RPAツール、UiPathを使うと、この青い部分が自動化されます。

2018-07-05_17h01_40

UiPathの基本についてはこちらを参考にしていただければ。

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

なお、本人(納税者)がUiPathを使えば、納税まで自動化されます。
ネットバンク、クレジットカードでそのまま納税できるからです。

2018-07-05_17h02_28

今回は、税理士が複数のお客様の処理をする場合を想定しています。

①データ送信

Excelにこういったデータを準備します。
基本情報は、Excelのお客様リスト(クライアントデータ)からVLOOKUP関数で連動させましょう。

2018-07-05_17h06_19

2018-07-05_17h06_25

2018-07-05_17h06_52

必要なデータは、次のとおりです。

・利用者識別番号(e-TaxのID)

→ e-Taxソフトのログインに使い、16桁の番号を4桁ずつ入れるので、4つに分けてExcelに準備しています。

・パスワード
→e-Taxソフトのログインに必要です。

・源泉所得税データ
給料を支払った人数・総額・源泉所得税
報酬を支払った人数・総額・源泉所得税

・メールアドレス

・宛名

・対象月、期限
年に2回納税する場合は、7月10日(1月から6月まで)、1月20日(7月から12月まで)という区切りであり、そのデータを入力する必要があるので準備します。
どこか別のシートに置いたほうがいいのですが、今回はそれぞれのデータにつけました。

これらのデータを読み取り、e-Taxソフトへの入力、メール送信に使うわけです。

e-Taxソフトにアクセスし、

2018-07-05_18h54_51

ID、パスワードでログインします。

2018-07-05_19h21_36

真ん中の[申告・申請・納税]を選び、

2018-07-05_18h55_44

[(納期特例分)]をクリック、

2018-07-05_18h55_55

対象月や区分を選び、

2018-07-05_18h56_39

データを入力し、

2018-07-05_18h57_25

送信します。

2018-07-05_18h58_06

②納税データ受領

納税用のデータを受け取ります。

2018-07-05_18h58_36

・収納機関番号:国税庁は、00200で固定
・利用者識別番号:固定
・確認番号:固定(電子申告開始届時にそれぞれ設定)
・納付区分:その都度変わる
の4つです。

このうち、納付区分のみがその都度変わるので、この画面から読み取ります。

③納税データ送信

4つの番号をメールでお客様へ送信します。
送るのは、期限、金額を加えた、こういったメールです。

2018-07-05_19h43_57

動画をつくってみました。
2社の処理をして、それぞれのメールを送っています。
メールが届くところまで撮ったのですが、隠すところも多く、結局カットしました。

もう1通はこういったメールです。
2018-07-05_19h56_51

UiPathで源泉所得税支払

では、UiPathでどうプログラミングしているかをまとめてみます。

①データ送信

まずは、Excelからデータを読み取りましょう。
[Excel Application Scope]で、Excelデータを開き、[Read Range]でシート名を「Data」にし、セル範囲を「””」にすれば、すべてのデータを読み取ることができます。
お客様が何件あっても自動的に処理できるわけです。
(給料データ、源泉所得税データの集計の手間はかかりますが)

さらに、プロパティ(右側)で、「Output」を「ExcelTable」(Ctrl+Kを押して変数として設定し、Scopeを全体に)にしておきましょう。

2018-07-05_13h12_45

繰り返し処理をするので、[For Each Row]で、先ほど設定した、「ExcelTable」を入れます。

2018-07-05_13h17_41

ブラウザで、e-Taxソフト(Web版)を開き、ログインボタンを押します。

2018-07-05_13h17_50

このログイン画面に、Excelから読み取ったID(利用者識別番号)、パスワード(暗証番号)をUiPathが入れてくれるわけです。

2018-07-05_19h21_36

ここは、Webレコーディングを使い、適当な数値を入れ、後で変数に変更しました。

2018-07-05_13h18_17

[For Each Row]で、この「ExcelTable」を読み取っているので、列名を指定すれば、使えるのです。
今は、2行目を入れていっています。
[For Each Row]を使えば、2行目、3行目、4行目……と繰り返すしくみです。

row(“id1”).ToString
で、id1という列の2行目、「2881」を入力できます。
ToStringは、Excelのデータを文字列にするもので、必須です。

(サンプルは、2行目と3行目は同じにしています)
2018-07-05_17h06_19

その後は、Webレコーディングで記録しつつ進んでいきます。

2018-07-05_13h18_37

対象年月の入力は、読み取ったExcelデータを、[Type into]で、選択しながら入れました。
Tabキーでカーソルを移動できるのですが、UiPathに沿う設定してしまうとうまく動きません。
しかたなく1つずつWebレコーディングしています。

2018-07-05_18h56_39

2018-07-05_13h19_09

年月の下のチェックを入れるところは、キー操作[Set Hot Key]で処理しました。
Tabキーでカーソルが動き、Spaceキーでチェックができます。

2018-07-05_13h19_29

そして、データ入力です。

2018-07-05_18h57_25

Excelから読み取ったデータを入れていきます。

2018-07-05_17h06_25

最初に入れる「月」は、Webレコーディングで認識させて入力し、そのあとは、Tabキーで動かしながら入れました。

2018-07-05_13h19_52

データを入れたら、次へ次へ進んでいきます。
UiPathがやってくれるからいいものの、ヒトがこれだけのクリックをするのは……。

2018-07-05_13h23_27

②納税データ受領

この画面がゴールです。
ただし、源泉所得税が0か、そうでないかでこの後の処理が変わります。
0の場合は、「納付区分」が表示されず、メールの必要もありません。
(納税は0です。と通知もありでしょうが)

2018-07-05_18h58_36

そこで[IF]を使い、合計税額が0かどうかで処理を分けています。

2018-07-05_13h23_50

0の場合は、データを送信するだけでいいので、そのままブラウザ(UiPathで標準のインターネットエクスプローラー)を[Close Application]で閉じます。
閉じておかないと、途中でダイヤログボックスが出てこないところがあるんです。
どういうつもりかわかりませんが。
[Attach Browser]でブラウザを選択してから[Close Application]で閉じましょう。

源泉所得税の合計が0、つまり納税しなくていい場合は、
・番号(納付区分)を取得
・メールで送る
ということをやります。

2018-07-05_13h24_19

抽出は、[Data Scraping]機能でやると楽です。
メニューから選択し、次の2か所を抽出します。
1か所だと抽出できず、2か所必要です。
さらには、どちらか一方は、固定値である必要があるので、「納付区分 ***********」というセットで抽出しましょう。

ex102

この部分をメール送信で使います。

なお、自分でやる場合は、この画面の下に[インターネットバンキング]、[クレジットカード納付]というボタンがありますので、これをクリックし支払うところまで自動化してみましょう。

2018-07-05_18h58_51

③納税データ送信

最後に、納税データをメールで送ります。
[Send SMTP Mail Message]で、黄色い部分は必須項目です。
メールサーバー名、ポート番号、メールのID、メールのパスワードを調べて入れておきましょう。
「to」は誰に送るかで、これは、Excelから読み取った「メール」列をrow(”メール”).Tostringで入れています。

ex101

件名(「subject」)は、共通でいいでしょう。
メール本文(「Body」)は次のように入れています。
宛名、期限、金額、納付番号、納付区分は変数です。
お客様ごとに変わります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

row(“宛名”).ToString+”様”+ environment.NewLine+environment.NewLine+
“お世話になっております。”+ environment.NewLine+
“井ノ上です。”+ environment.NewLine+ environment.NewLine+
“源泉所得税の支払を下記のとおりお願いします。”+ environment.NewLine+ environment.NewLine+
“期限              “+ row(“期限”).ToString.Substring(6,4)+”年”+row(“期限”).ToString.Substring(0,2)+”月”+row(“期限”).ToString.Substring(3,2)+ ”日”+environment.NewLine+ environment.NewLine+
“金額               “+String.Format(“{0:#,0} 円”,row(“合計”))+environment.NewLine+ environment.NewLine+
“収納機関番号 00200″+ environment.NewLine+
“納付番号       ” + row(“id1”).ToString+row(“id2”).ToString+row(“id3”).ToString+row(“id4”).ToString+ environment.NewLine+
“確認番号       262830″+ environment.NewLine+
“納付区分       ” + ExtractDataTable(1)(0).tostring

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

改行は、environment.NewLine。
ちと長いのですが、きっちり入れておきましょう。

期限は、Excelで「2018年7月10日」を読み取ると、UiPathでは、「07/10/2018 00:00:00」となってしまうので工夫が必要です。
これをSubstringで読み取って、row(“期限”).ToString.Substring(6,4)だと、「07/10/2018 00:00:00」の6番目(0、1、2・・と数えるので、2018の2は6番目)から4文字となります。

金額は、String.Format(“{0:#,0} 円”,row(“合計”))で、「合計」の列にある数字を桁区切りにしています。

納付番号は、  row(“id1”).ToString+row(“id2”).ToString+row(“id3”).ToString+row(“id4”).ToString として、4つの番号を組み合わせて16桁にしています。
ハイフンを入れてもいいのですが、ネットバンクで貼り付けることを考えると、16桁のほうが都合がいいのです。

確認番号は任意です。
お客様ごとに共通にしています。
もし別にするなら、Excelデータに入れておきましょう。

納付区分は、Excelではなく、抽出したテーブル(ExtractDataTable)から入れています。
ExtractDataTable(1)(0).tostringというのは、ExtractDataTableの1列目、0行目という意味です。

納付金額 74184714

というテーブルで、0、1、2・・と数えるので1列目の0行目は、74184714となります。

そして、最後に、[Clear Datatable]で、ExcelTableをいったんクリア、空にしておきましょう。
[For Each Row]で繰り返すときに、ExcelTableをそのまま維持してしまうからです。

Excel、e-Taxソフト(Web版)、メールソフトといった異なるソフトをつなげて自動化できるのが、RPAの強みといえます。
納税データ受領までを自動化して、あとは手動にするというパターンでも、結構楽になるかと。
何件あっても自動的にできますが、大事なのは、やはり件数をおさえることではあります。


【編集後記】
台風の影響で、2日遅れの昨日、鹿児島から戻ってきました。
14時半ごろ、自宅に到着。
ひと安心です。

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

鹿児島空港までバス
鹿児島空港ラウンジ
鹿児島空港から羽田

【昨日の娘日記】
6日ぶりに対面。
保育園に早く迎えに行きたかったのですが、ぐっと我慢。
いつもどおりに迎えに行きました。
若干二度見して戸惑ってた感じでしたが、無事再会。
その後はじっくり遊びました。
パパ、疲弊していて、先に寝ちゃいましたが。

■スポンサードリンク
■井ノ上陽一のプロフィール
■スポンサードリンク



井ノ上陽一のVALU
■著書
【監修】十人十色の「ひとり税理士」という生き方
ひとり税理士のIT仕事術―ITに強くなれば、ひとり税理士の真価を発揮できる!!
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
毎日定時で帰っても給料が上がる時間のつかい方をお金のプロに聞いてみた!
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
『社長!「経理」がわからないと、あなたの会社潰れますよ』
『そのまま使える経理&会計のためのExcel入門』