![見出し画像](https://assets.st-note.com/production/uploads/images/160948377/rectangle_large_type_2_b1436712a339aa21826413dfa9fd0d3a.jpeg?width=1200)
RPA支援の為に「sikuliX」を導入した話
現在の担当業務において、働き方の見直しが叫ばれている中、当然課員である私にも調査依頼がきました。
何かないか、何かないか…と悩んだ結果、RPA支援のためのツール「sikuliX」に出会いましたのでまとめてみました。
そもそも、RPAって?
RPA(Robotic Process Automation)とは、人間がコンピュータを操作して行う作業を、ソフトウェアによる自動的な操作によって代替すること。主に企業などのデスクワークにおけるパソコンを使った業務の自動化・省力化を行うもので、業務の効率化や低コスト化を進めることができる。
…とのこと。
自動化という考え方自体は、日常生活では当たり前になっています。
電子レンジでのあたため、湯沸かし、洗濯。どれもボタン1つで簡単に実行、あとはお任せ~といった感じです。
ちなみに、我が家でも愛猫へのご飯は自動化対応済み…。
指定時刻に出せる他、外にいてもスマホアプリ1つで簡単に出せる優れもの…すごいぞ自動化。
その自動化をパソコン上でもやりたい!…というのが今回の目的です。
↑我が家ではこちらを使用しています。いつもお世話になっております。
sikuliXはどんなツール?
sikuliXは「画像認識機能を用いてパソコン操作を自動化する」RPAツールです。
パソコン上の操作を自動化する場合、一般的にはコーディングという作業が必要になりますが、未経験の方にとっては中々敷居が高いと感じてしまうのが現状です。
しかし、sikuliXはコーディングに不慣れな方でも簡単に実装できてしまうとても便利なRPAツールなんです。
初心者向けのツールか?といわれればそうでもなく、コーディング知識がある方も十分に活用できるツールとなっています。
sikuliXはPythonモジュールを標準で搭載しているため、使い方次第ではファイルパスを操作したり、タイムスタンプの情報を取得して他操作に利用することも可能です。
導入方法について
必要となるものは以下。
sikuliX本体
java8以上の環境
sikuliXについては、以下公式サイトからダウンロードします。
「SikuliX IDE: Edit and run Jython/Python/Ruby scripts on all systems」直下にあるリンクから最新版を取得します。
java8以上の環境を構築する場合は、Amazon CorrettoのOpenJDKがおすすめです。AWSから無償で提供されているJavaの開発キットになります。こちらも最新版を取得します。
実際の使用例
使用例:メモ帳を開いて「Hello World.」と入力したい
こんな感じで簡単に実装できてしまいます。
![](https://assets.st-note.com/img/1730971462-QmEh0Skor4AV9OeUbaBYKyuM.png?width=1200)
コマンド名も直感的にイメージしやすく◎。
以下、デモ版も併せて展開します。
実装内容の詳細
実装内に登場したコマンドは基本的に「コマンド名(引数)」の構成となっています。コマンド名や引数は自由に入力していいわけではなく、ルールが決まっています。
例:click()の場合
括弧の中には、実際にクリックしたい箇所を画像で指定します。
指定した画像が存在すれば、そこをクリックしますし、指定した画像が存在しなければエラーを返します。
![](https://assets.st-note.com/img/1730971907-jbfyXmv8i25w7Hne3RuGrAVl.png)
指定した画像が存在しない(色が異なるため)です。
「じゃあ、この引数で指定した画像はどのように撮っているの?」という点については、sikuliX内のスクリーンショット機能を使用することで対応可能となります。
![](https://assets.st-note.com/img/1730972216-i8e9A4Xt53El2sIFpkvd7gaN.png)
今回はclick()のみの紹介でしたが、sikuliXでは様々なコマンドが用意されています。以下一例となります。
doubleClick():指定した箇所をダブルクリックする。
type():括弧内で指定したキーまたは文字列を入力/ペーストする。
wait():指定した秒数だけ待機する。
まとめ
今回紹介した例はsikuliXをうまく活用することで、日常の作業を自動化することができます。
以下、思いつく適用例を紹介します。
パソコン上で動くソフトウェアの耐久試験
静的解析の自動化
定期ビルド作業
ワークフロー申請などの自動化
当然ではありますが、コンピューターに自動で作業をしてもらうため、その間はなにも作業することができません。自動化する用のパソコンとモニターが確保できるのであれば、是非試してみてはいかがでしょうか。
今日のにゃんこ
![](https://assets.st-note.com/img/1730973831-t7RFM2Qw1DrkgVvUcofXeOb5.jpg?width=1200)
![](https://assets.st-note.com/img/1730973872-8otOVbrBCAlpFHeiJL70G3nI.jpg?width=1200)
![](https://assets.st-note.com/img/1730973938-3hrWgQOIecPM29XE5BTx4lYo.jpg?width=1200)
![](https://assets.st-note.com/img/1730973952-QxC0SjIO98UNMkeFaREyW57V.jpg?width=1200)
それではまた。