スキルアップTweet株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するイベントを、定期的に開催しています。宏之さんを講師にお招きし、RPAについて教えていただきました。今回のイベントは、実際に手を動かすハンズオン形式。参加者は各自ノートPCを持ち込んで学ばれました。まで現代アートやデザインを勉強していたが、客先常駐のプログラマとしてIT業界に飛び込み、現場でプログラムやシステム開発を身に付ける。2010年フリーランスとして独立し、2016年RPAと出会う。2017年に起業し、2018年に書籍「オープンソースで作る!RPAシステム開発入門」(翔泳社)を上梓。執筆・講演の傍ら、顧客企業内の業務自動化をサポートしている。Automation)とは、コンピュータにできることはコンピュータにさせるということ。人員不足や働き方改革が叫ばれる今、注目されているテーマでもあります。▲RPAが注目される理由は大きく3つ。システムが乱立している環境下で、異なるシステム間のつなぎ業務を行うというニーズもあるRPAツールには、実行環境と認識タイプにそれぞれの種類があるそうです。今回のイベントで使われた「SikuliX」は、デスクトップ型、画像認識型に分類されます。SikuliXは、Windows上で動作し、無料で使えるアプリケーションで、人の目のように画像を認識し、人の手のようにマウスやキーボードを動かしてくれます。条件に応じた操作や、繰り返しなどの処理は、プログラミング言語のPythonを使うことで対応できます。RPAツールを使って簡単なロボットを作ってみようまずは簡単なロボットを作ってみます。今回作るロボットの作業は次のようなもの。▲デスクトップ上のテキストファイルを開き、文字列を書き加え、別名で保存し、メモ帳を終了させるSikuliXでは条件分岐、繰り返しなどの複雑な処理も行えますが、今回は順次処理のみを使います。作業登録の準備として、事前にデスクトップに「hello.txt」という名前のファイルを作成。中身は何も入力されていない空の状態です。次に具体的な作業手順を登録していきます。手順は、小佐井さんのとても分かりやすいスライドがあったため、参加者の皆さんも戸惑うことはありませんでした。ポイントは、あらかじめSikuliX以外のウィンドウを最小化にしておくなど、登録作業がスムーズに行えるのと同時に、SikuliXが画面認識を間違えないようにしておくことだそうです。▲コマンドリストの「マウスの動作」から「doubleClick()」をクリックする。すると、SikuliXのウィンドウが最小化され、デスクトップが表示される。この状態をキャプチャーモードと呼ぶキャプチャーモードの状態から、マウスでhello.txtのアイコンを範囲指定の要領で囲んで、クリックをします。アイコンを囲むのに失敗したら、ソースコードウィンドウに記述されたコードを削除して、やり直します。成功したら、SikuliXの「実行」ボタンをクリック。hello.txtのアイコンがダブルクリックされ、メモ帳が立ち上がればOK。うまくいけば、テキストを入力する部分をプログラミングします。SikuliXのソースコードウィンドウに次のプログラムを追加します。sleep(3)type("Hello")sleep(3)sleep(3)は3秒待つための命令で、ウィンドウが開く前にテキスト入力してしまうのを避けるためのものだそうです。▲SikuliXでは、画面キャプチャーと、プログラムコードの記述で、作業を登録していく次に名前を付けて保存する作業を登録します。SikuliXのコマンドから「click()」を選択し、キャプチャーモードで、メモ帳の「ファイル」メニューを選択。これで「ファイル」メニューをクリックするところは登録できました。キャプチャーモードにしてから、「ファイル」メニューを開き、一覧から「名前を付けて保存」を選択するのですが、どうしても間に合いません。そんなときは、SikuliXの「ファイル」メニューから「環境設定」をクリックし、「環境設定」ダイアログボックスで「キャプチャーを実行するまでの時間」を1秒から3秒に変更します。▲キャプチャーモードに移行するまでの時間を調整できる(スライド右下の囲み)「名前を付けて保存」の選択ができたら、ファイル名を入力させます。「ファイル名を付けて保存」のダイアログボックスは、表示されたとき、ファイル名を入力するテキストボックスの文字列が選択されている状態。そのまま新しいファイル名を入力します。そこで、SikuliXのソースコードウィンドウに、type("hello2.txt")と入力します。今回のイベントでは作業を進めるため、実際の「ファイル名を付けて保存」のダイアログボックスの方にも、人間の手でファイル名を入力。次に、「click()」でキャプチャーモードにして、ダイアログボックスの「保存」ボタンを選択します。この後、実際のメモ帳の方は保存ぜず、操作をキャンセルし、メモ帳の画面に戻ります。しておかなければHello2.txtが作られ、SikuliXに作業をさせるとき、既にファイルが存在する旨の警告メッセージが表示されてしまい、手順通りに進まなくなってしまうからです。最後にメモ帳を終了させます。ウィンドウを閉じるには、ウィンドウ右上の「×」(閉じる)ボタンをクリックする、F4キーのショートカットを使う、「ファイル」メニューから「終了」を選ぶなど、複数の異なる方法があります。今回は「ファイル」メニューから「終了」を選びます。手順は「名前を付けて保存」のときと同じです。以上でSikuliXへの登録作業はおしまい。実際に、SikuliXの「実行」ボタンをクリックしてみると、あっと言う間に、メモ帳が勝手に立ち上がり、文字列が入力され、勝手に新しいファイルに保存され、メモ帳が終了。参加者の皆さんは、感動されていたのと同時に驚かれていました。SikuliXのテクニック基本的な操作が理解できたところで、小佐井さんがSikuliXのちょっとしたテクニックをいくつか教えてくださいました。■ターゲットオフセットWebのログイン画面などで、IDとパスワードを入力するテキストボックスが同じように並んでいる場合に、それぞれの入力で、テキストボックスを画像として指定しても、それがIDなのか、パスワードなのか、SikuliXには区別がつきません。そのままだと、先に一致したIDのテキストボックスにパスワードを入力してしまうといったミスが起きてしまう可能性もあります。これを解決するのが「ターゲットオフセット」という機能で、テキストボックスのタイトル文字列などで位置を特定しておき、そこからオフセットさせたテキストボックスに文字を入力させることができます。text)コマンドを使うと、見出しなどを選択し、そこからさらにオフセット位置を指定したテキストボックスに文字を入力できる■Region指定した画面領域の中から画像を探させる「Region」という機能もあります。こちらは、異なる複数の領域に同じ画像がある場合も特定できるように、画面内の絶対座標で定められた領域内で判断しています。絶対座標で画像を探すため、ウィンドウの最大化や、表示位置の変更で、正しく認識できないこともあるそうです。イベントの最後には小佐井さんが、WebブラウザからIDとパスワードを入力してシステムにログインをしたあと、特定の期間の売上データをダウンロードして保存するという、本格的なロボットのデモを披露。毎日、あるいは毎週の売上をダウンロードして保存するなどといった「定型業務」をこのような形で自動化できたら便利ですね。登録しましょう!『ITスタッフィング』はリクルートスタッフィングが運営する派遣エンジニアのお仕事探しに特化したサイトです。オンライン登録と来社登録、2つの方法が選べます。Maker」として働き方そのものを生み出せる企業になることを目指しています。Ltd.お問い合わせプライバシーポリシーご利用にあたってスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。