SikuliXのforとwhileで繰り返し実行(loop)

SikuliXのforとwhileで繰り返し実行(loop)

 

★悩み★
・SikuliXである処理の繰り返し実行(loop)ってできる?
・forとwhileを使って、SikuliXで繰り返し実行できるのかな。
・繰り返し実行(loop)をSikuliXで記述する方法を知りたい。



こういった「悩み」に答えます。
 

★本記事の内容★
① SikuliXで繰り返し実行(loop)の方法【forとwhileを利用】
➁ 準備:SikuliXのインストールと起動
③ SikuliXのforで繰り返し実行(loop)する方法
④ SikuliXのwhileで繰り返し実行(loop)する方法



これからご紹介する「SikuliXのforとwhileで繰り返し実行(loop)」を実践したことで、30分以内で「SikuliXでforとwhikeを用いた繰り返し実行(loop)」を作れました(下の動画参照)。
 

SikuliXのwhileで繰り返し実行するプログラム
SikuliXで繰り返し実行(loop)するプログラム



記事の前半では「SikuliXのインストールや起動といった環境の準備」を解説します。
記事の後半では「forを使った繰り返し実行(loop)」や「whileを使った繰り返し実行(loop)」を実現する方法を紹介します。
 

この記事を読み終えることで、「SikuliXである処理の繰り返し実行(loop)」を作れる状態になります。
 

★SikuliXとは★
SikuliX(シクリ)とは、画像認識を用いたGUI操作自動化ツールです。簡単な操作で「エクセル入力の自動化」などに利用できます。「検索ボックスに検索ワードを入力して検索ボタンをクリックする」などの操作を自動化できます。
さらに詳しく知りたい方には、以下の記事がオススメです。
>> 【要点解説】SikuliXとは?を解消!3ステップで入門する方法を解説



ちなみに、筆者が2週間でSikuliXを学んだ方法や手順について以下で公開しています。皆様の学習の参考になれば嬉しいです。

>> SikuliXに0から入門し操作を自動化するまでのロードマップを公開中

 

SikuliXで繰り返し実行(loop)の方法【forとwhileを利用】

SikuliXで繰り返し実行(loop)の方法【forとwhileを利用】


「SikuliXで繰り返し実行(loop)の方法【forとwhileを利用】」に関してご紹介します。
 

★SikuliXで繰り返し実行(loop)する方法と補足★
・SikuliXで繰り返し実行(loop)を実現する方法
・forとwhileの使い分け



以降で、上記「SikuliXで繰り返し実行(loop)する方法と補足」の各項目に関してご説明します。
 

SikuliXで繰り返し実行(loop)を実現する方法

「SikuliXで繰り返し実行(loop)を実現する方法」に関して解説します。
 

SikuliXで繰り返し実行(loop)を実現したい場合、2つの方法があります。



SikuliXで繰り返し実行(loop)を実現したい場合、以下の「for」または「while」を使います。
 

★SikuliXで繰り返し実行(loop)を実現する方法★
・forを使う
・whileを使う



「for」と「while」の構文や使い方に関しては、本記事の後半で解説します。
 

以上が、「SikuliXで繰り返し実行(loop)を実現する方法」となります。
 

forとwhileの使い分け

「forとwhileの使い分け」に関して解説します。
 

プログラムの可読性から、forとwhileを使い分ける方法を説明しますね。



繰り返し実行(loop)を実現できる「for」は、以下の特徴があります。
 

★forの特徴★
「値を格納した配列」、もしくは、「繰り返す回数」を指定して、繰り返し実行(loop)の回数を決定する。

 

また、繰り返し実行(loop)を実現できる「while」は、以下の特徴があります。
 

★whileの特徴★
繰り返し実行(loop)の回数は、「条件を満たすまで」となる。



上記の「forの特徴」と「whileの特徴」から、以下の使い分けをオススメします。
 

★forとwhileの使い分け★
繰り返す回数が決まっている場合、「for」を利用する。
繰り返す回数が決まっていない場合、「while」を利用する。

 

少し頑張れば、whileでも「繰り返す回数を指定した繰り返し実行(loop)」を記述できます。
ただし、プログラムの可読性が悪くなるためオススメはできません。



以上が、「forとwhileの使い分け」となります。
 

SikuliXで繰り返し実行(loop)を実現したい場合、「for」または「while」を使いましょう。


 

準備:SikuliXのインストールと起動

準備:SikuliXのインストールと起動


「準備:SikuliXのインストールと起動」に関してご紹介します。
 

★SikuliXでforとwhileで繰り返し実行(loop)を作るための準備手順★
手順1:SikuliXをインストール
手順2:SikuliXの起動



上記の流れで、「SikuliXでforとwhileを使った繰り返し実行(loop)を作るための環境準備」ができます。
 

上記の各手順は、以下の日時で動作確認済みです。
動作確認済み日時:2022年5月4日



以降で、上記「SikuliXでforとwhileで繰り返し実行(loop)を作るための準備手順」の各手順に関してご説明します。
 

手順1:SikuliXをインストール

「手順1:SikuliXをインストール」に関して説明します。
 

お使いのパソコンにSikuliXをインストールしましょう。



「SikuliXをWindowsにインストールする手順」に関しては、以下の記事をご覧ください。
>> 【Windows向け】SikuliXのインストール手順と基本的な使い方
 

「macOS(Mac)にインストールする手順」に関しては、以下の記事をご覧ください。
>> 【Mac向け】SikuliXのインストール手順と基本的な使い方
 

以上が、「手順1:SikuliXをインストール」となります。
 

手順2:SikuliXの起動

「手順2:SikuliXの起動」に関して説明します。
 

インストールしたSikuliXを起動し、「forとwhileを使った繰り返し実行(loop)のプログラム」を記載できる状態にしましょう。



「WindowsにインストールしたSikuliXを起動する手順」に関しては、以下の記事をご覧ください。
>> 【Windows向け】SikuliXのインストール手順と基本的な使い方
 

「macOS(Mac)にインストールしたSikuliXを起動する手順」に関しては、以下の記事をご覧ください。
>> 【Mac向け】SikuliXのインストール手順と基本的な使い方
 

以上が、「手順2:SikuliXの起動」となります。
 

Javaをインストールし、SikuliXのjarファイルをダウンロードすることで、簡単にSikuliXの環境を準備できます。
以降で、forとwhileを使った繰り返し実行(loop)に関して解説します。


 

SikuliXのforで繰り返し実行(loop)する方法

SikuliXのforで繰り返し実行(loop)する方法


「SikuliXのforで繰り返し実行(loop)する方法」に関してご紹介します。
 

★SikuliXのforで繰り返し実行(loop)を実現★
① forの構文を解説
➁ SikuliXのforで繰り返し実行するプログラムを作成



SikuliXの「for」を使うことで、ある処理の繰り返し実行を実現できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年5月4日
動作確認済み環境:macOS Catalina



以降で、上記「SikuliXのforで繰り返し実行(loop)を実現」の各項目に関してご説明します。
 

forの構文を解説

「forの構文を解説」に関して説明します。
 

SikuliXで繰り返しを伴う処理を実現したい場合、1つの方法として「forの利用」があります。



SikuliXで「繰り返し実行」を作りたい場合、以下の「for」を使います。
 

★forのリファレンス★
処理:指定した回数だけ、以降の処理を繰り返し実行させる
使い方:for <変数> in <回数>



SikuliXの「for」を使った繰り返し実行(loop)の書き方としては、以下の4パターンがあります。
 

★forのパターン①:指定した回数だけ繰り返す★
・書き方
 for <変数> in range(<回数>):
  繰り返したい処理
・例
 for loop_count in range(5):
  print loop_count
・実行結果
 「0」「1」「2」「3」「4」と順番に表示される。

  

★forのパターン➁:リストを使って繰り返す★
・書き方
 for <変数> in <リスト>
  繰り返したい処理
・例
 items = [“apple”, “orange”]
 for item in items:
  print item
・実行結果
 「apple」「orange」と順番に表示される。

  

★forのパターン➂:繰り返しの途中で抜ける★
・書き方
 for <変数> in range(<回数>):
  繰り返したい処理
  if 条件:
   break
・例
 for loop_count in range(5):
  print loop_count
  if loop_count == 2:
   break
・実行結果
 「0」「1」「2」と順番に表示される。

  

★forのパターン④:条件を満たすとき処理をスキップする★
・書き方
 for <変数> in range(<回数>):
  if 条件:
   continue
  繰り返したい処理
・例
 for loop_count in range(5):
  if loop_count == 2:
   continue
  print loop_count
・実行結果
 「0」「1」「3」「4」と順番に表示される。

  

以上が、「forの構文を解説」となります。
 

SikuliXのforで繰り返し実行するプログラムを作成

「SikuliXのforで繰り返し実行するプログラムを作成」に関して説明します。
 

SikuliXのforと使って、繰り返し実行(loop)するプログラムを作成してみましょう。



起動したSikuliX上において、「スクリーンショットを撮る」をクリックし、「Safariのアイコン」と「デスクトップの端」の画像を撮影しましょう。
その後、以下のプログラムを作成してください。

  

SikuliXのforで繰り返し実行するプログラム
SikuliXのforで繰り返し実行するプログラム

 

for now_count in range(0,3):

  click("1651484534966.png")
  sleep(3)  
  click(Region(90,110,41,31))

  print "繰り返し数:" + str(now_count)

print "SikuliXでforによる繰り返しを実施しました。"

 

上記で使った関数を詳しく知りたい方は、以下の記事をご覧ください。
・click()について
 >> SikuliXでマウスのクリックや移動操作を自動化
・sleep()について
 >> SikuliXでよく使うコマンドの一覧



プログラム作成後、SikuliX上の「実行」ボタンをクリックします。

クリック後、下のデモ動画のように、SikuliXでforを使って繰り返し実行(loop)を実現できます。
 

SikuliXのforで繰り返し実行するプログラム
SikuliXのforで繰り返し実行



以上が、「SikuliXのif文を使った条件分岐プログラムの作成と実行」となります。
 

SikuliXで「for」を使うことで、繰り返し実行(loop)を作ることができます。


 

SikuliXのwhileで繰り返し実行(loop)する方法

SikuliXのwhileで繰り返し実行(loop)する方法


「SikuliXのwhileで繰り返し実行(loop)する方法」に関してご紹介します。
 

★SikuliXのwhileで繰り返し実行(loop)を実現★
① whileの構文を解説
➁ SikuliXのwhileで繰り返し実行するプログラムを作成



SikuliXの「while」を使うことで、ある処理の繰り返し実行を実現できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年5月4日
動作確認済み環境:macOS Catalina



以降で、上記「SikuliXのwhileで繰り返し実行(loop)を実現」の各項目に関してご説明します。
 

whileの構文を解説

「whileの構文を解説」に関して説明します。
 

SikuliXで繰り返しを伴う処理を実現したい場合、1つの方法として「whileの利用」があります。



SikuliXで「繰り返し実行」を作りたい場合、以下の「while」を使います。
 

★whileのリファレンス★
処理:指定した条件を満たすまで、以降の処理を繰り返し実行させる
使い方:while 条件



SikuliXの「while」を使った繰り返し実行(loop)の書き方としては、以下の4パターンがあります。
 

★whileのパターン①:条件を満たすまで繰り返す★
・書き方
 while 条件:
  繰り返したい処理
・例
 loop_count = 0
 while loop_count < 5:
  print loop_count
  loop_count = loop_count + 1
・実行結果
 「0」「1」「2」「3」「4」と順番に表示される。

  

★whileのパターン➁:繰り返しの途中で抜ける★
・書き方
 while 条件:
  繰り返したい処理
  if 条件:
   break
・例
 loop_count = 0
 while loop_count < 5:
  print loop_count
  loop_count = loop_count + 1
  if loop_count == 2:
   break
・実行結果
 「0」「1」「2」と順番に表示される。

  

★whileのパターン➂:条件を満たすとき処理をスキップする★
・書き方
 while 条件:
  if 条件:
   continue
  繰り返したい処理
・例
 loop_count = 0
 while loop_count < 5:
  if loop_count == 2:
   continue
  print loop_count
  loop_count = loop_count + 1
・実行結果
 「0」「1」「3」「4」と順番に表示される。

  

★whileのパターン④:無限ループ★
・書き方
 while True:
  繰り返したい処理
・例
 loop_count = 0
 while True:
  print loop_count
  loop_count = loop_count + 1
・実行結果
 「0」「1」「3」「4」….「1000」…と無限に数字が表示される。

  

以上が、「whileの構文を解説」となります。
 

SikuliXのwhileで繰り返し実行するプログラムを作成

「SikuliXのwhileで繰り返し実行するプログラムを作成」に関して説明します。
 

SikuliXのforと使って、繰り返し実行(loop)するプログラムを作成してみましょう。



起動したSikuliX上において、「スクリーンショットを撮る」をクリックし、「Safariのアイコン」と「デスクトップの端」の画像を撮影しましょう。
その後、以下のプログラムを作成してください。

  

SikuliXのwhileで繰り返し実行するプログラム
SikuliXのwhileで繰り返し実行するプログラム

 

max_count = 3
now_count = 0

while now_count < max_count:

  click("1651484534966.png")
  sleep(3)  
  click(Region(90,110,41,31))

  print "繰り返し数:" + str(now_count)
  now_count += 1

print "SikuliXでwhileによる繰り返しを実施しました。"

 

上記で使った関数を詳しく知りたい方は、以下の記事をご覧ください。
・click()について
 >> SikuliXでマウスのクリックや移動操作を自動化
・sleep()について
 >> SikuliXでよく使うコマンドの一覧



プログラム作成後、SikuliX上の「実行」ボタンをクリックします。

クリック後、下のデモ動画のように、SikuliXで「while」を使って繰り返し実行を実現できます。
 

SikuliXのwhileで繰り返し実行するプログラム
SikuliXのwhileで繰り返し実行するプログラム



以上が、「SikuliXのwhileで繰り返し実行するプログラムを作成」となります。
 

SikuliXで「while」を使うことで、繰り返し実行(loop)を作ることができます。 



ちなみに、forやwhileを使って同じ画像を何回もクリックする場合、SikuliXの機能の1つであるgetLastMatch関数を使うことで、より高速な処理を実現できます。
>> SikuliXのmatch(getLastMatch)の使い方
 

また、「SikuliXをシステムで利用する場合の注意点」や「SikuliXでAndroidを操作する方法」などを知りたい方には、以下の記事で紹介している本がオススメです。
>> 【入門者向け】SikuliXの勉強に役に立つオススメ書籍3冊

 

【まとめ】SikuliXのforとwhileで繰り返し実行(loop)

【まとめ】SikuliXのforとwhileで繰り返し実行(loop)


いかがでしたでしょうか?
SikuliXで「for」と「while」を使って、繰り返し実行(loop)を実現するプログラムとデモ動画を用いて解説し、以下の悩みを解決しました。
 

★悩み★
・SikuliXである処理の繰り返し実行(loop)ってできる?
・forとwhileを使って、SikuliXで繰り返し実行できるのかな。
・繰り返し実行(loop)をSikuliXで記述する方法を知りたい。



画面操作の繰り返し実行(loop)を実現したい場合、SikuliXの利用を検討してみてください。

コメント

タイトルとURLをコピーしました