金曜日, 5月 30, 2025
ホーム自動化RPA時代にUWSC活用(No.104)Yamasan

RPA時代にUWSC活用(No.104)Yamasan

🧠 概要:

概要

この記事では、RPA(ロボティック・プロセス・オートメーション)ツールに関する課題を共有し、UWSCという古いフリーソフトを活用することを提案しています。著者は、自身の経験を基に、RPAツールのいくつかの課題を挙げ、UWSCを使ったプログラミングの利点について詳述しています。

要約の箇条書き

  • RPAツールの普及: RPAはノーコードで自動化を実現するが、使用に際して課題が多い。
  • 課題1: ノーコードツールは保守が難しく、複雑なロジックを把握しにくい。
  • 課題2: 作成したRPAの配布が困難で、有料版が必要な場合が多い。
  • 課題3: OSの仕様により、ブラウザ操作に制限があるため、安定した自動化が難しい。
  • 課題4: 画面表示の動的変化により、マウス操作での自動化が難しいことが多い。
  • プログラミングの優位性: RPAよりもプログラミングで自動化した方が、確実で時間を短縮できる場合が多い。
  • UWSCの提案: UWSCは古くから存在するフリーソフトで、スクリプト言語による自動化を支援。
  • ChkImgXとの統合: 画像検索機能を用いることで、画面の内容に応じた自動化が可能となる。
  • 配布の簡便さ: UWSCは環境設定が容易で、ソースコードのみで配布できるため、使いやすい。

以上がこの記事の概要と要約です。

RPA時代にUWSC活用(No.104)Yamasan

Yamasan

フリーを含めさまざまなRPAツールがネット情報として掲載されているこの時期ですが、皆さんはRPAツール使っていますか?ノーコードで人に代わって、仮想ロボットが画面操作などを実行し、業務をこなす仕組みです。私も数年前からRPAっていうキーワードを耳にするようになり、今までいくつものツールを使ってみました。その結果、以下のような課題も見えてきており、RPAを積極的には使っていない日々です。皆さんと以下の課題を共有できるなら、RPAの代わりにUWSCやプログラミングでの解決をお勧めします。(課題1)プログラミングができる人にとっては、ノーコードツールは、保守しにくい。画面操作(マウスでコンポーネント選択しながら)で動くツールを作成するのは、一見、簡単そうに見えますが、ソースコードとして出力できないと複雑なロジックの全体を把握しづらく、保守しにくいのも事実です。中には、作成したロジックをソースのように出力できるものもありますが、ほとんどは画面操作・閲覧のみです。(課題2)作成したRPAを配布しにくい。フリーに限るかもしれませんが、作成したRPA機能を別の人に配布することが、思ったより難しいです。ソースコードなどで取り出しできない場合、作成したPC上でしか、動かすことができません。ソースをEXPORTしたりIMPORTする機能は、有料であることお多いです。例としてPowerAutomateDesktopもその一例です。使ってもらいたい方に配布がしにくいというのは、課題ですね。有料版であれば、共有できるのですが、第三者などに配布するとき、ライセンスが必要ですっていうのも、配布しにくい課題です。(課題3)ブラウザ上の操作を画面上のコンポーネントを指定して操作するシナリオを作成する場合、画面の一覧からファイルなどをダウンロードする操作などでは、WindowsOSの仕様にも関係しますが、ダウンロード操作(ファイル名を指定して保存するなど)は、ブラウザ内のコンポーネントではなく、OS上の操作となるため、途中からRPAツールで操作できない事象などあります。ブラウザ内のコンポーネントを指定しながら操作を実行することは、マウスカーソルを移動させて、クリックする動作より確実でいいのですが、一部、例外もあります。画面上の位置を指定してクリックする操作で実現しようとした場合でも以下のような画面では、問題となります。募集中の仕事のみのチェックボックスをクリックしたいのですが、その前(左側)に表示される件数情報が、条件によって、桁数がことなり、募集中の仕事のみのチェックボックスの表示位置がずれます。マウスの移動位置が変動するので、単純には、マウス操作では機能を実現できません。

(課題4)課題3を解決するため、マウス操作で実現しようとした場合、画面の構成によって、つねに同じ位置に表示されなかったりして、うまく動作を実現できないケースも多いです。解決策の1つに、画面上の画像を認識して位置を特定する方法もありますが、いろいろ課題もあって、画像認識がうまくいかないケースも多いです。(画面解像度の問題や、キャプチャーした画面を保存するときに加工され、本来の画面と異なる画像になり、一致しない事象もあります)画像情報を少し曖昧にして検索する機能がないとこれもうまくいきません。

いくつかのRPAツールで検証しましたが、うまく動作してくれるものは少ないのも事実です。(ここ1年くらいは、未検証ですが)

上記以外にも課題はありますので、基本は、RPAツールを使わないで、自動で実行できるように業務機能を実現すること優先とし、EXCELなどは、VBAでプログラミングして自動化を実施しています。プログラミングで実現できることは、RPAツールより確実に動作し、検証なども含めると、短期間で品質を高められるのも事実です。しかし、プログラミングで解決できない領域もあります。すでに動いているアプリ(改造ができないアプリ)やネット上で提供されている各種サービスを使って自動化したい場合です。ネット上のサービスにログインして機能を選択してパラメータを入力後に検索した結果をダウンロードするような操作がどうしても自動でしにくい場合、RPAツールの導入を検討しなければなりません。しかし、まずは使いたいサービスにAPIがあるかを調査し、APIを使って操作できるならプログラミングで解決できます。最近、REST_APIで公開されているサービスも多いので、結構、プログラミングで自動化が実現できます。

以下は、そのようなことができない場合の対策案の紹介です。

UWSCツールとChkImgXを使ったRPAです。

UWSCツールは、古い時代からフリーで存在し、10年以上前から使っていました。RPAというキーワードがまだ広まっていない時代からです。すでに開発者の方はいませんが、ネットからダウンロードは可能です。感謝ですね。スクリプト言語(テキスト)で実装し、動かす仕組みです。オンラインヘルプで文法やサンプルソースを閲覧できます。(Win11などの環境では、ヘルプファイルが開けないので、プロパティの変更操作が必要です)

UWSCツールはZIPファイルを解凍してすぐに起動できます。

設定を以下のように変更して使っています。

ソースは、以下のようにテキストです。sample001.uws

 exec("cmd /c start=https://coconala.com/") gid = GETID("ココナラ") ACW(gid,609,340,2496,1662,0) MOUSEORG(gid) print "gid="+gid while True Ifb GETKEYSTATE(VK_CTRL) then x = G_MOUSE_X; y = G_MOUSE_Y id = GETID(GET_FROMPOINT_WIN) ofx = x - STATUS(id, ST_CLX) ofy = y - STATUS(id, ST_CLY) wks = PosACC(id, ofx, ofy, ACC_BACK) wks = wks + "<#cr>" + "x="+ofx+", y="+ofy print wks endif Ifb GETKEYSTATE(VK_RBUTTON) then print "EXIT" break endif sleep(0.2)wend

上記ソースは、URLを指定してブラウザを開き、画面サイズと表示位置を指定後に、画面上でマウスを動かし、画面に表示されている文字情報をCTLキーを押下したときに取得して表示する動作(マウス右クリックでプログラムは終了)です。マウスフォーカスしている箇所の文字情報を取得できます。尚、マウスの座標位置は、画面の絶対座標からブラウザウィンドウ内の相対位置に変更しています。相対位置で指定するようにコーディングすれば、画面を移動しても正しく動作します。(課題4)の解決先に戻りますが、UWSCには画像を検索する機能CHKIMGがあります。

しかし、いくつかの課題もあってうまく動作しない場合が多く、ネット上でもいろいろ、記事も掲載されています。その中でChkImgXを組み込んで使えば、BMP以外の画像(jpg,pngなど)も使って、曖昧範囲を拡大して検索できます。けっこう画像にヒットします。使うのは簡単で、ChkImgXをダウンロードして必要なファイルをUWSCツールのあるフォルダにコピーすれば、準備環境です。

以下の3つのファイルをZIPファイルから取り出してコピーします。

ソースコード上では、以下の宣言を記述します。

CALL ChkImgX.uws

検索したい画像をキャプチャーしてフォルダ内に保存します。今回はjpgで保存しました。該当ブラウザ上から、検索したい画像を切り出して保存します。

以下のような画面からキャプチャーします。

キャプチャーした画像は、以下の画像です。マウスフォーカスがあたって、クリックが有効になる範囲でキャプチャーします。募集中のみ.jpgで保存しておきます。

以下のようにコーディングすれば、画像を検索してクリック操作を実現できます。

 STARTUP_CHKIMGX() IFB CHKIMGX("募集中のみ.jpg") xpos = G_IMGX_X ypos = G_IMGX_Y offx = xpos - x1 offy = ypos - y1 PRINT "xpos="+xpos+",ypos="+ypos PRINT "offx="+offx+",offy="+offy BTN(LEFT, CLICK, offx+11, offy+23) ENDIF    SHUTDOWN_CHKIMGX() 

画面内で表示位置が固定されないような場合、画像認識は有効です。ただ、使う範囲は限定したほうが、保守はしやすいです。使うPCの画面解像度の影響もあるので、配布時には、注意も必要です。しかし、ファイルのダウンロードなどの操作も本機能を使えば、実現可能です。(ファイルダウンロードはブラウザの環境設定で画面も異なるので、別の調整も必要ですが)UWSCのソースコードは、BASICに近い文法です。ある程度の関数が準備できていることや、アプリの起動なども実行できるので、現在でもRPAツールとして使えます。動作も早いですし、起動時間が短い。一般的なRAPツールは、環境設定などに時間がかかり、使いたいときすぐ起動しません。配布も簡単です。UWSCが動く環境になっていれば、ソースだけ配布(画像が必要な場合もありますが)だけです。ぜひ、皆さんもUWSCを使ってみてください。PowerAutomateDesktopも使ってみましたが、UWSCで十分っていう感じです。

Yamasan

システム開発、ハードウェア設計、ソフトウェア開発、システム構築、プロジェクトマネージャー実施。現在は、個人事業主として業務系アプリを中心に情報発信中coconalaで注文も受付中Webixライブラリを使った業務アプリを紹介します。広島県在住



続きをみる


Views: 1

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -