こんにちは。完全自動化研究所の小佐井です。
RPAとプログラミングの基礎を身に付ける連載の第1回です。
無料のオープンソースRPA「SikuliX」を使って、RPAとプログラミングの基礎を身に付けましょう。
1) IT歴20年。開発から業務改善まで幅広く経験してきました
2) 複数の企業において2016年からRPA内製化をサポートしています
3) RPA関連の書籍を5冊出版しています
第1回目はロボにテキストファイルを開かせて、「Hello」と書き込ませる簡単なロボを作ってみましょう。
RPAも学びたいけど、同時にプログラミングも学びたいという方に最適な記事になっています。
実際に手を動かしてSikuliXを操作しながら、お読みください。
それでは、どうぞ!
順次処理でRPAの威力を実感しよう
さっそく開発を始めていきましょう!
環境をセットアップしてください。
環境をセットアップしよう
次の記事の「環境をセットアップしよう」を読んで、Java8とSikuliX1.1.1をセットアップして、SikuliXが動く環境にしてください。
これから作る自動化の動作を確認しよう
デスクトップ上の「Hello.txt」というテキストファイルを開き、「Hello」というテキストを入力します(図1)。
図1:自動化の動作
まず、準備しましょう
準備は4つありますよ。カンタンですので、一つひとつやっていきましょう。
準備1:Hello.txtを手動で作ってください
デスクトップの上で右クリック→新規作成(図2❶)→テキストファイル(図2❷)をクリックしてください。
図2:Hello.txtの作成
「新しいテキスト ドキュメント.txt」というテキストファイルができますので、ファイルの名前を「Hello.txt」に変えてください(図3)。
図3:Hello.txtの完成
準備2:SikuliX1.1.1を起動しておいてください
エクスプローラでC:¥RPAを開いてrunsikulix.cmdを見つけてください。これをダブルクリックすれば(図4❶)、SikuliXの開発画面が立ち上がります(図4❷)。
図4:SikuliX開発画面
準備3:SikuliXの設定の確認をします
コマンドリストの「設定」の右横にある下向き矢印をクリックしてください(図5❶)。
「コマンドリストってなに?」という方は、次の記事に画面の名称の説明があります。
設定のボックスが開き、中に「自動的にキャプチャモードへ移行」が見えますので、チェックボックスにチェックが入っていることを確認してください(図5❷)。
チェックが入っていない場合は、チェックを入れてください。
なぜこれにチェックをつけるのかは後で説明します。
図5:SikuliXの設定を確認
準備4:保存用のフォルダを作っておいてください
「C:\RPA」というフォルダが既に作成されているはずです。その下に「JB1001」というフォルダを作成してください。これで準備は完了です。
ロボの開発をはじめます
ダブルクリックコマンドをクリックします
コマンドリストのマウスの動作のボックスの中に「doubleClick」がありますので、これをクリックします(図6)。
このとき、このサイトを開いたまま作業をしていると思います。
Hello.txtはデスクトップ上にありますので、隠れないようにしておいてください。SikuliX開発画面は「doubleClick」をクリックすると最小化されてデスクトップ画面から消えますので、あまり気にする必要はありません。
図6:コマンドリスト「マウスの動作」
画面が暗くなり、SikuliXの開発画面が消えて、範囲選択できるようになります。デスクトップ上のHello.txtを左クリックを押したまま範囲選択してください(図7)。
開発作業に慣れてくると、「毎回キャプチャーモードに移行させずにプログラムだけを先に生成して、あとからまとめてキャプチャーしたい」というニーズも出てきます。そのときは「自動的にキャプチャモードに移行」のチェックを外してくださいね。
赤点線のクロスする部分に対して、ダブルクリックが行われますので、クロスする部分を意識して選択してください。
図7:ダブルクリック位置を選択
選択したら、左クリックを離してください。画面が明るくなり、SikuliXの開発画面が表示されます。
プログラムが生成されていることを確認しましょう
ソースコードウィンドウに「doubleClick(選択した画像)」というプログラムが自動的に生成されているでしょう(図8)。
ちなみに、doubleClickの最初に出てくるCは大文字であることを覚えておいてください。このプログラムは直接手で記述することもできるのですが、大文字と小文字を間違えると動きません。
図8:自動生成されたプログラム
一度、保存しましょう
この段階で、プログラムを保存しておきましょう。
いつ保存しても構いません。プログラムを作成し始める前でもいいですよ。
まめに保存するよう意識して、せっかく作ったプログラムを失ってしまわないように気を付けてくださいね。
メニュー「ファイル」をクリックし(図9❶)、「保存」をクリックします(図9❷)。
図9:メニュー「ファイル」
「Save a Sikuli Script」ダイアログがポップアップしますので、「C:\RPA\JB1001」を開いてください。フォルダ「JB1001」は準備4で作成したものです。
フォルダ名のボックスに「C:\RPA\JB1001」と書いてあるはずです。
その後ろに「\JB100101」と書き加えてください(図10❶)。「C:\RPA\JB1001\JB100101」となったら、「Save」をクリックします(図10❷)。
これで保存されました。
図10:保存ダイアログ
一度、実行しましょう
ここまでできたら、一度プログラムを実行してみましょう!
実行するときに気を付ける点は、SikuliXの開発画面以外の余計なウィンドウを開いておかないことです。画像イメージを使いますので、余計なものがあれば、目的の画像を探せなくなってしまいます。
リボンにある「実行」をクリックします(図11)。
図11:保存ダイアログ
SikuliX開発画面がデスクトップから消え、マウスが動いて、Hello.txtのところに移動しましたよね?そして、メモ帳が開いたと同時にSikuliX開発画面が表示されましたね(図12)。
ちょっと、動きが早かったですか?
もう一度実行するときは、Hello.txtを手動で終了させてから実行してくださいね。
図12:実行後の画面
SikuliXの威力が少しわかってもらえましたか?人と同じように『目』で探して『手』でマウスを操作してパソコン作業ができるという意味を少し掴んでもらえたのではないでしょうか?
続きをやっていこう
さて、このページのテーマは「ロボに英語であいさつを書かせてみよう」ということです。
いま、開いたHello.txtに「Hello」と打ち込ませるところまで、やってみましょう!
コマンドリストは使わず、直接ソースコードウィンドウに下記のプログラムを打ち込んでください。
sleep(3)
type("Hello")
sleep(3)
図13のようになります。
図13:ソースコードウィンドウ
sleep()は、カッコの中の秒数だけ止まって待つ、というプログラムです。SikuliXの処理が早く動きすぎると、メモ帳が開いたりする動作の方がついていけなくなってしまうので、少しゆっくりするために使います。
4行目のsleep(3)は、「Hello」と打ち込まれたあと、一瞬で処理が終わってしまうので「落ち着いて処理結果を見る」ためです。カッコの中の秒数を変更して、好みの時間に調整しても大丈夫ですよ。
typeはキーボードをタイプする代わりをするプログラムです。今回は直接入力してもらいましたが、コマンドリストを使って自動的に入力することもできます(図14)。プログラムに慣れてきたら、typeのような短いプログラムはマウスを使うより、直接記述した方が早いかもしれません。
図14:コマンドリスト「キーボードの動作」
もう一度実行しよう
実行方法を忘れてしまった方は図11を振り返ってくださいね。
そして、実行前に保存してください。
メニュー「ファイル」→「保存」です。コントロールキーとSキーを同時に押しても同じように保存できます。
実行すると、図15のようにメモ帳に「Hello」と書き込まれますね。
そして、3秒待ってプログラムが終了します。ここまでで「ロボに英語であいさつを書かせてみよう」の回は完了です!
図15:実行結果
この学習で学んだことは?
今回のプログラムの動きを振り返って確認しましょう!
今回のプログラムの動きはこうです。
デスクトップ上のテキストファイルを開く
↓
ちょっと待つ
↓
「Hello」とタイプする
↓
ちょっと待つ
ただ順番に実行しただけですが、これはプログラムの基本処理の1つ「順次処理」と呼ばれています。カンタンですが、基本中の基本ですので、しっかりと押さえておきましょう!
おまけ
プログラムにはコメントを入れよう
暗号のようなプログラムを読んでも、何の処理が行われるのか分かりませんよね?
書いた本人も分からなくなることも、よくあります。ましてや、他人ならなおさらです。
そこで、何のプログラムなのかを書き残しておこう、というのがコメントです。
SikuliXの場合、Pythonというプログラム言語のルールに従います。
# コメント
プログラム
という書き方です。
「#(シャープ)」を文の最初に付けるとコメントと認識される、というわけです。これを使って、このページのプログラムにコメントを付けておきましょう。
図16のように入れます。
コメントは4行目のように、プログラムの後ろに書いてもいいです。
ただし、長いプログラムの後ろにコメントを書いてしまうと、画面の右端の方に寄りすぎて、見づらくなってしまいます。また、見やすいように段落を空けるのも自由です(3、5、8行目)。
図16:コメントを付けたプログラム
というわけで、コメントもプログラムのうちです。
なるべく見やすく分かりやすいプログラムを書くようにしましょうね!
コメント機能の達人になろう
コメントの機能を使ったテクニックを解説します。コメントは解説を書き込むだけではなく、プログラムを修正するためにも使えます。
図17のように、9行目のプログラムを修正したい(実行したくない)とき、9行目を直接変更したり、消してしまうのではなく、コメントにしてしまいます。このことを「コメントアウトする」とか「コメントにする」とか言います。
そして、10行目のように、変更したプログラムを書きます。
図17:コメントアウトを使ったプログラム修正
これは、どんな修正をしたのか記録として残しておくためです。
あとで、変更場所が原因でプログラムが動かなくなったとき、修正履歴が残っていれば、もとに戻すことができますよね。
このような、コメントを使ったテクニックは、プログラム開発には重要ですので覚えておいてください。
保存したプログラムの開き方
このページで作ったプログラムをちゃんと保存して、SikuliX開発画面を閉じたあと、またプログラムを開くときの手順を解説します。このページのプログラムは「C:\RPA\JB1001\JB100101.sikuli」という場所に保存されているはずです。
まず、SikuliX開発画面を起動します。エクスプローラでC:¥RPAを開いてrunsikulix.cmdを見つけてください。これをダブルクリックすれば(図18❶)、SikuliXの開発画面が立ち上がります(図18❷)。
図18:SikuliX開発画面の起動
SikuliX開発画面のメニュー「ファイル」をクリックし、「開く」をクリックします(図19)。
図19:メニュー「開く」をクリック
「Open a Sikuli Script」ダイアログが開きますので(図20)、「JB100101.sikuli」をクリックします(図20❶)。ファイル名に「JB100101.sikuli」と表示されますので(図20❷)、「Select」をクリックします(図20❸)。
図20:「Open a Sikuli Script」ダイアログ
SikuliX開発画面のソースコードウィンドウに「JB100101」が表示されます(図21)。「無題」は必要ないので、「×」をクリックして閉じてください。これで保存したプログラムの開き方の解説は終わりです。きちんと開けましたか?
図21:SikuliX開発画面
ファイルが見つからない、開けないという方はエクスプローラーで「C:\RPA\JB1001\JB100101.sikuli」があることを確認してください(図22❶)。
そして、中に3つのファイルがあることを確認してください(図22❷)。
「JB100101.py」がプログラムが入っているファイルですので、このファイルが無いとSikuliX開発画面では開けません。ちなみに「*.png」はキャプチャした環境によって名前が変わります。
図21:JB100101.sikuliの保存場所