記事作成のきっかけとSikuliXの活用例
業務でSikuliXを使う機会があったので、インストールや使い方について簡単にまとめてみました。
私は遠隔地に設置してあるシステムの運用保守をしているのですが、WindowsアップデートなどによりPCが再起動されると、常時起動しておきたいアプリが正常に立ち上がらないという問題点がありました。
そのアプリは、所定のボタンをクリックしてアプリを閉じないと、次にアプリを立ち上げた際に正常な画面が表示されないのです。
アプリの設定変更などで対処することができなかった為、画像認識技術を用いたRPAツール「SikuliX」を使ってみることにしました。
⚠️内容には注意を払っていますが、記載に誤りや最新の仕様と異なる点があるかもしれません。参考程度にご覧いただければ幸いです。
目次
- 記事作成のきっかけとSikuliXの活用例
- RPAとは
- SikuliXとは
- SikuliXの動作環境
- JDK(Amazon Corretto 11)のインストール
- SikuliXのインストール
- SikuliX使い方
- 日本語入力の注意点
- バッチファイル化してスタートアップに登録する
- バッチファイルを指定の時間に自動実行する
RPAとは
RPA(Robotic Process Automation)とは、ソフトウェアロボットを使って定型的な事務作業を自動化する技術のことです。
人間がパソコン上で行うキーボード操作やマウス操作、アプリケーションの操作などを記録し、それを自動で実行することができます。
SikuliXとは
オープンソースの軽量RPAツールで、クリックやテキスト入力などのGUI操作を自動化できます。
他のRPAツールと比較した際のSikuliXの特徴は、画面上の画像(スクリーンショット)を使って操作できることです。
SikulixはJavaで開発されていますが、スクリプト(RPAの処理)はJython(Java上で動くPython)で記述できます。
SikuliXの動作環境
OS : 64bit版のWindows、Mac、Linux
Java実行環境 : Java8以上
JDK(Amazon Corretto 11)のインストール
SikuliXはJavaの実行環境で動作する為、SikuliXを使うにはデバイスにJavaがインストールされている必要があります。
ここではAmazon Corretto 11をインストールします。
Amazon Corretto 11は https://docs.aws.amazon.com/ja_jp/corretto/latest/corretto-8-ug/downloads-list.html からインストールできます。
Windowsの場合は、画像の赤枠の部分をクリックします。
ダウンロードが完了したら開き、Nextをクリックします。
保存先のパスを選択し、Nextをクリックします。
デフォルトのままでよい場合は、そのままNextをクリックします。
Installをクリックし、しばらく待ちます。
以下の画面が表示されたらインストール完了です。
Finishをクリックして閉じます。
SikuliXのインストール
https://raiman.github.io/SikuliX1/downloads.html からSikuliXをインストールできます。
Download the ready to use sikulixide-2.0.5.jar (SikuliX IDE for all systems)(画像赤枠の部分)をクリックします。
インストールが完了したらアプリを任意の場所に保存します。
保存したら、sikulixide-2.0.5.jarを起動しましょう。
SikuliX使い方
SikuliXの基本的なコマンド
# 画像に対してクリック操作
click("画像.png") # 指定した画像をクリック
doubleClick("画像.png") # 指定した画像をダブルクリック
rightClick("画像.png") # 指定した画像を右クリック
hover("画像.png") # マウスカーソルを指定した画像の上に移動
# キーボード操作
type("文字列") # 文字列をキーボード入力
type(Key.ENTER) # Enterキーを押す
# 待機処理
wait("画像.png", 秒数) # 指定秒数以内に画像が表示されるのを待つ
sleep(秒数) # 単純に指定秒数だけ待つ(秒単位)
type(Key.ENTER)は、ENTERの部分をESCやTABなどにすると、指定したキーを押せます。
キー名は大文字で記載する必要があります。
ここでは例として、Googlechromeを開いて検索バーに「Japan」と検索する処理を自動化します。
click()と入力したら()の中にカーソルを合わせ、「スクリーンショットを撮る」をクリックします。
Googlechromeのアイコンのスクリーンショットを撮りましょう。
既にスクリーンショットを保存している場合は、「画像を挿入する」をクリックしてください。
スクリーンショットを撮り終わると、このように表示されます。
Googlechromeを開いて「Japan」と検索するまでの処理を全て記述すると、このようになります。
click(Googlechromeのアイコン.png)
wait(Googlechromeの検索バー.png)
type("Japan")
type(Key.ENTER)
「実行」ボタンを押して、スクリプトが自動実行されるかどうか確認しましょう。
問題なく自動実行できたら、左上の「ファイル」→「名前を付けて保存」から、任意の場所にスクリプトを保存します。
ここでは、先ほど作成したGooglechromeで「Japan」と検索するスクリプトを、Cドライブ直下に「chromeserch.sikuli」という名前で保存しました。
日本語入力の注意点
SikuliXはキーボード入力(type)を英語キーボード想定で送信しているため、
type("Japan")をtype("日本")のように実行しようとすると、文字化けしてエラーになる場合があります。
対処法として、
paste("日本")
と入力する方法がありますが、こちらでも文字化けして検索されてしまうことがあるため、
どうしても日本語入力をしたい場合は、英語と日本語入力を織り交ぜて記述したり、IMEが英語入力になっていないか調べたりなどする必要があるようです。
バッチファイル化してスタートアップに登録する
SikuliXに処理を記述して保存するだけだと、SikuliX内の「実行」ボタンを手動でクリックしないとスクリプトが自動実行されません。
Googlechromeを開いて「Japan」と検索する処理を、PC起動後に毎回自動実行させたい場合は、
以下の手順でスクリプトファイルをバッチファイル化し、スタートアップに登録する必要があります。
①バッチファイルの作成
メモ帳アプリを開き、以下のように記述します。
@echo off
cd /d "C:\"
"C:\Path\To\SikuliX\sikulix.jar" -r "C:\chromeserch.sikuli"
SikuliX実行ファイルがあるフォルダのパスを記述します。(ここではCドライブ直下にある「chromeserch.sikuli」というフォルダ)
「run_sikuli.bat」という名前で一旦デスクトップに保存します。
バッチファイルの名前と保存先は何でも大丈夫です。
②スタートアップフォルダに登録
Windowsキー+「R」キーを同時に押し、「ファイル名を指定して実行」が表示されたら、shell:startupと入力しEnterキーを押します。
スタートアップフォルダが開くので、先ほど作成したバッチファイル(ここでは「run_sikuli.bat」)をコピーしてここに貼り付けます。
これで、PC起動後に「Googlechromeで「Japan」と検索する処理」が自動で実行されるはずです。
バッチファイルを指定の時間に自動実行する
タスクスケジューラを開きます。
タスクスケジューラはスタートボタンの右横、もしくはスタートメニュー内にある検索バーに「タスクスケジューラ」と入力すると、出てきます。
もしくは、「ファイル名を指定して実行」でtaskschd.mscと入力することでも起動できます。
タスクスケジューラが開いたら、右側部分にある「基本タスクの作成」をクリックします。
「基本タスクの作成ウィザード」が表示されるので、タスク名を入力して「次へ」を押します。
ここでは「chromeserch」としましたが、何でも大丈夫です。
タスクを実行する周期を選択し、「次へ」を押します。
タスクを実行する時間を設定します。
「プログラムの開始」にチェックが入った状態で「次へ」を押します。
「参照」をクリックし、先ほど作成したバッチファイルを選択します。
「完了」を押します。
まとめ
SikuliXはローコードで本格的なRPAを実践できる大変便利なツールです。
業務でRPAに触れる機会がない人もゲーム感覚で楽しめると思いますので、日常的に行う簡単なマウス操作(夜20:00にPCを起動したらNetFlixを開く、など…)を自動化してみてはいかがでしょう?

















