Power Automate Desktopで3メガバンクを自動化

Power Automate Desktopを使って、三菱UFJ、みずほ、三井住友銀行等、3メガバンクのサイトで口座明細の取得や海外送金などを自動化しています。そのポイントでも書いてみようかと思います。


最初は全然ダメ

MicrosoftからRPA(Robotic Process Automation。ロボット的な工程自動化)ツールであるPower Automate Desktopが無償で提供されたので、早速インターネットバンキングの自動化を試してみました。

だがしかし、当初はサイトへのログインすら満足にできず全然ダメでした。

それでも色々試しているうちに少しずつ操作できるようになっていきました。


途中で新規ウィンドウを開くサイト

なぜか三菱や三井のサイトはログインページの後にサービスのページを別のウィンドウとして開いています。

このような場合には、ウィンドウごとにブラウザインスタンスを用意してから、それに対して操作をする必要があります。

具体的には、新しいウィンドウが増えたら、新しいブラウザを起動するアクションを実行し、そのウィンドウに接続します。そこで生成されたブラウザインスタンスを示す変数に対して操作を行います。


WebオートメーションとUIオートメーション

自動化に使うアクションにはWebオートメーションとUIオートメーションがあります。

Webオートメーションはブラウザによって表示されるWebページの自動操作です。

UIオートメーションは一般的なWindowsアプリケーションを対象とした自動操作で、ブラウザもWindowsアプリケーションの一つなのでUIオートメーションを使っても操作は可能です。

始めのうちはこれらをごちゃまぜに使って動く方を使っていました。

しかし最近、Webオートメーションで扱えるものはUIからWebオートメーションに置き換えていったところ、そちらの方が動作が速く、なおかつ安定して動作するような気がしています。EdgeやChrome、FireFoxなどには拡張機能がブラウザにインストールされているため、より確実にブラウザを操作できるのだろうと思います。

ブラウザ内に表示されているものはできるだけWebオートメーションを使うと良さそうです。UIオートメーションでは選択できずキー送信との組み合わせでしのいでいたドロップダウンリストがWebオートメーションでは簡単に操作できたこともあります。

ブラウザで要注意なのがセキュリティ関連のダイアログです。証明書の選択などで表示されるウィンドウはWebページではないため、これはUIオートメーションで操作するしかないと思います。


要素の待機を使う

Webページの操作をしているとしばしば要素を見つけられずに停止してしまいます。最初はうまく動いていてもたまに止まったりします。

こういう場合には、操作対象の要素を待機してみるのも一つです。ボタンを押すなどの操作を行おうとしているのに、まだボタン等の準備ができていないと空振りとなり停止してしまいます。

即座に次に進むような場合は何もしなくても良いかもしれませんが、少し時間がかかる処理の場合には要素の待機を入れてみるとよいと思います。


できるだけ時間待機は使わない

秒数を指定する時間待機のアクションは手軽だけれど、待機時間が短すぎると操作対象となるボタンなどが見つけられず、逆に待機時間が長いと無駄な待ち時間になってしまいます。

PCの処理速度も問題になるため、開発したPCではうまく行ったけれど、他のPCではうまく行かないという事もあり得ます。

時間待機は最後の手段だと思い、まずは要素待機やファイル待機などを試してみると良いでしょう。


要素待機をしても動作しないサイト

三井住友のサイトでは開発中の画面では問題なくても、実行時に停止してしまうという問題がありました。

具体的には、ログインボタンを押しても電子証明書選択画面がポップアップしてこないという問題です。

当然Web要素の待機アクションを使ってログインボタンの表示を待ってから押しているのですがそれでも動作しません。

色々試行錯誤した結果、どうやらボタンを押した後にJava Scriptが動いているらしく、その中で何らかの問題が生じているようでした。

例えば、別の画面では、あまりにも操作が速いと、ボタンを押したのではなく、ブラウザの進む戻るボタンを押されたと判断されエラー画面が表示されます。画面遷移を判断する何かのステータスの更新が追いつかないのかもしれません。

開発の際には人間が操作する前提なので、コンマ何秒で操作された場合のことは考えていないのでしょう。

これはサイト側の作りがそうなっているためどうしようもないので、やむを得ず、ページが表示された後、1秒間待機をしてからボタンを押しています。これで今のところ電子証明書選択画面が安定して表示されています。


画像認識が必要なサイト

三菱UFJ銀行のサイトでは、サインインした後のメニュー操作でつまづきました。

Web UI、UIの両方を試しましたがうまく操作ができず、やむを得ずメニューの画像を認識してからそこをクリックするという操作にしました。


このアクションは次の本に書かれていました。これだけでもこの本を買った甲斐がありました。
はじめてのPower Automate Desktop―無料&ノーコードRPAではじめる業務自動化


計算書の作成は待機が必要

海外からの入金に対して入金処理を行うと、当日の為替レートを元にして計算書が発行されます。

三井住友の計算書の作成は瞬時に行われるわけではなくしばらくかかる場合があります。そのため手動の場合には何度か検索ボタンを押して全件表示されるのを待ちます。

Power Automate Desktopで処理する場合も同様に、ループで待機をして、計算書の数が入金数に一致するまでループして、ループごとに1秒待機して、検索ボタンを押します。入金数は入金処理の画面で事前に取得しておきます。


デフォルト証明書に注意

何かのブラウザではデフォルトの証明書を選択することができます。これがくせ者で、証明書が更新された際にも古い証明書を選んでしまった気がします。それを解除するの少々てこずりました。

デフォルト証明書を設定した方が操作がひと手間減って確実かつ便利にはなるのですが、更新時の切り替えを忘れないようにした方が良いでしょう。古い証明書が使われてエラーになる可能性があります。


ダウンロード時のデフォルト動作

ブラウザによってはダウンロード時のファイルの扱いを設定できるものがあります。これもくせ者で、ダウンロードしたファイルを移動したいのに勝手に開かれてしまうため操作ができなくなる場合があります。

これはブラウザの設定を変更することによって勝手に開かないようにして対応しました。

ただ、普段使いのブラウザでは開いてくれた方が便利なことも多いと思います。普段使いのブラウザと、RPA用のブラウザを分けるのも一つなのかもしれません。


IEモードを使うのもありかもしれない

各銀行によりサポートしているブラウザは異なります。次はざっくりのサポートブラウザです。認証方法によって異なるので、リンク先のページをよく確認しましょう。

三菱: IE11, (Firefox ESR ICカード不可)
みずほ ビジネスWeb: IE11, (Firefoxパスワードのみ)
三井住友: IE11, Edge, Chrome, (Firefoxパスワードのみ)

「FirefoxのESR版は、Firefoxの通常版をベースとした延長サポートを法人向けにMozilla Japanが提供しているブラウザソフトとなります」という事です。

というわけで、三社で確実にサポートされているのは依然としてIEのみということになりそうです。

問題はIEは来年春にサポートが切れるという事です。先日知りましたが、EdgeのIEモードの正体はIEそのもののようです。タスクマネージャーで見るとieexplorer.exeが走っているそうです。

IEモードの正体や使い方を解説、「脱IE」5個の疑問

であれば、EdgeのIEモードを使うというのも一つの選択肢なのかもしれません。ただし銀行によって正式にサポートされるかどうかは別ですが。

サポートされないブラウザを使った場合に生じたトラブルは自己責任となるのが問題です。


現在はExcelと連携

口座明細を仕訳票に取り込む機能はExcelのVBA(マクロ)で作っていました。

そのため、現在は、口座明細をPower Automate Desktopで落として、Excelで仕訳を作成し、それをPower Automate Desktopで業務システムに入金するという流れになっています。

Power Automate Desktopからマクロを呼び出すことも可能なようなので、いずれは一気にPower Automate Desktopで口座明細のダウンロードから入金まで行うかもしれません。

なお、Excelを操作する必要があり、VBAがわかるのであれば、Excelの複雑な自動化はVBAで行ったほうが、確実かつ速く、書き方にもよるけれど可読性が高いと思います。

例えば、セルA3に"2021/11/14"を入力するより、A3に請求日と名前を付けてVBAで、Range("請求日")="2021/11/14"とした方がわかりやすいと思います。また、こうしておけば、仮にA3セルを他のB4等に移動させてもコードはそのまま動作します。

VBAをわかる方が職場にいないなら仕方がありませんが、そうでなければ、Excelの自動化はVBAで行ったほうが良いでしょう。

Power Automate Desktopの演算子や関数は機能が限られますし。


今のところ概ね操作できています

色々なところでつまづいて苦戦しましたが、最終的にはどのサイトも必要な範囲では自動操作ができています。

単純な明細の取得から、海外送金依頼書の作成や計算書の取得と印刷、送金依頼者へのメールまで自動化できています。


コメント

アクセス数の多い投稿

セキュリティ対策ソフトのノートンが詐欺ソフトまがいになってしまってショック

ZIPファイルを開こうとすると、展開を完了できません、と言われる

Excel 2019 クエリが原因で日本語入力の一文字目が勝手に確定する

オカムラ家具のOAチェアー、コンテッサを分解清掃

突然滅茶苦茶遅くなったPCがWindows Updateのキャッシュクリアで復活

Excelのテーブルに行や列を挿入する際のエラー

ChatGPTが日本語からVBAのコードを生成できてたまげる

Windows セキュリティーのビックリマークが消えない

Power Automate Desktopでブラウザでダウンロードしたファイルを処理する

Excel VBAからODBCを使ってデータを簡単に取得する