2011/01/23

e-Tax平成22年分(2010年分)確定申告の先物取引と配当のAutoItによる自動入力

e-Taxの平成22年分(2010年分)確定申告書等作成コーナーの先物取引(日経225先物など)と上場株式の配当の入力を支援するAutoItスクリプトを書いた。
動機はただ単純に手動で入力するのが面倒だったから。特に「先物取引に係る雑所得等」は最大で990件(330ページ * 3件)入力可能にされているのに、構造化したデータをアップロードするなどの方式が提供されずにWebブラウザで手動での入力が想定されているのはおかしい。面倒ってレベルじゃない。
去年もAutoItのスクリプトを書いたけど、去年のものはキー入力やマウス操作の命令ばかり使ったもので処理が遅くて不安定で良い出来ではなかった。今年はIE操作用のUDF "IE.au3"を使ってそれなりにまともなものができたと思うので晒してみる。

動作を確認した環境は次の通り。
  • Windows 7 Pro. x64
  • InternetExplorer 8
  • AutoIt v3 (v3.3.6.1)
  • 2011/01/22時点のe-Tax平成22年分確定申告書作成コーナー
InternetExplorerはAutoItやe-Taxのサイトが対応していればいいと思う。

内容の簡単な説明としては、普通にInternetExplorerを操作してデータを入力するページ(「先物取引に係る雑所得等」ページとか)を開いた状態にしてAutoItのスクリプトを実行するというのが主操作手順。そうするとAutoItがデータ(タブ区切りテキスト形式で事前に作成しておく)を入力してくれて、それが完了したらまた自分でInternetExplorerを操作してデータを保存するとか次の処理に進んだりできる。
AutoItで処理するのはデータの入力部分だけで、保存しておいた確定申告書データを読み込んで作成を再開するとかデータの入力後に確定申告書データを保存するとかの処理は、自然に手動で操作するだけで済むようになっている(AutoItで処理するよりも柔軟かつ分かりやすい)。またAutoItで処理する範囲が小さくて済むためAutoItのスクリプトも簡単になっている。

処理の所要時間は私の環境で1件の入力に約0.8秒だった。まあこんなものだと思う。
オンライン送信ではなく郵送すれば済む話だけど、折角可能なんだからオンライン送信に固執するつもりで書いた。

先物取引のデータの入力支援のスクリプトの使い方

入力データの作成

入力する先物取引の内訳をタブ区切りテキスト形式で作成する。
テンプレートはetax-future-sample.xlsx
入力項目は「【確定申告書作成コーナー】-先物取引に係る雑所得等」ページ(https://www.keisan.nta.go.jp/h22/syotoku/ta_subB62.jsp)の取引の内訳と全く同じ。

etax-future-sample.xlsxの列順でデータを作成してタブ区切りテキスト形式で保存して、項目の説明である先頭の2行を削除すればいい。入力データのサンプルはetax-future-sample.txt

入力データ作成時の注意点:
  • 正しいデータを作成すること
  • 作成されたデータはそのまま入力ページへの入力に使われる
  • スクリプトではデータのバリデーションをしていない。おかしなデータが含まれていると入力ページのバリデーション処理によりメッセージを通知するダイアログが表示されるため、データの入力処理がそこで止まってしまう。

スクリプトの実行

InternetExplorerを操作して(保存しておいた確定申告書データから作成を再開するなどして)「【確定申告書作成コーナー】-先物取引に係る雑所得等」ページ(https://www.keisan.nta.go.jp/h22/syotoku/ta_subB62.jsp)を開いておく。

その状態でAutoItのスクリプトetax-future-2010.au3を実行する。

スクリプトの10行目付近の$filename変数が入力データ(タブ区切りテキスト形式)のファイル名。
とりあえず次のようにしてある。この場合etax-future-2010.txtという名前のファイルが読み込まれる。
;$filename = "etax-future-sample.txt"  ; 取引の内訳データのファイル名(タブ区切りテキストファイル)
$filename = "etax-future-2010.txt"  ; 取引の内訳データのファイル名(タブ区切りテキストファイル)

1件入力するごとに進捗を標準出力に書き出すのでそれを確認できる環境でスクリプトを実行するのが良い。
コマンドラインでもいいし、AutoIt Script Editor(SciTE4AutoIt3)(AutoIt Full Installationに含まれる)でスクリプトを開いてメニューの「Tools」-「Go」で実行すると、エディタのOutputペインが開いてそれが標準出力になるので、スクリプトを変更して実行する場合にはこれが便利。

配当のデータの入力支援のスクリプトの使い方

構成や使い方は先物取引のデータ入力と同じなので省略。
スクリプトやテンプレートとサンプルはksksts / junk / source – Bitbucketのetax-dividend-*という名前のファイル。
対象としているのは「【確定申告書作成コーナー】-配当所得、配当控除(上場株式等)」ページ(https://www.keisan.nta.go.jp/h22/syotoku/ta_subX5b.jsp)への入力。
これは「配当所得、配当控除(取引区分の選択)」ページで「1 上場株式等」-「(2) 源泉徴収口座への受入れを行っていない配当等」を選択したケースのこと。