(57)【要約】      （修正有）【課題】ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる情報処理プログラムを提供する。【解決手段】情報処理装置の操作記憶モジュール１１５は、一連の操作を記憶し、検証領域記憶モジュール１３０は、操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶し、操作実行モジュール１２０は、操作記憶モジュールに記憶された操作を実行し、エラー処理モジュール１４０は、実行手段による実行の前又は後の画面から領域情報を用いて、変化しないはずの領域内の情報と、検証領域記憶モジュールに記憶されている情報が一致しない場合は、エラー処理を行う。【選択図】図１
2020009279.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
一連の操作を記憶している第１記憶手段と、
操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶している第２記憶手段と、
前記第１記憶手段に記憶された操作を実行する実行手段と、
前記実行手段による実行の前又は後の画面から前記領域情報を用いて、変化しないはずの領域内の情報と前記第２記憶手段に記憶されている情報が一致しない場合は、エラー処理を行うエラー処理手段
として機能させるための情報処理プログラム。
【請求項２】
前記領域内の情報として、該領域内の画像を用いる、
請求項１に記載の情報処理プログラム。
【請求項３】
前記領域内の情報として、該領域内の特性情報を用いる、
請求項１に記載の情報処理プログラム。
【請求項４】
操作を実行する前における画面と別時点で該操作を実行する前における画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、前記第２記憶手段に記憶させるように制御する制御手段
をさらに有する請求項１に記載の情報処理プログラム。
【請求項５】
操作を実行した後における画面と別時点で該操作を実行した後における画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、前記第２記憶手段に記憶させるように制御する制御手段
をさらに有する請求項１に記載の情報処理プログラム。
【請求項６】
操作を実行する前の画面と該操作を実行した後の画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、前記第２記憶手段に記憶させるように制御する制御手段
をさらに有する請求項１に記載の情報処理プログラム。
【請求項７】
前記第２記憶手段は、前記操作を行った後の内部状態を記憶しており、
前記エラー処理手段は、前記操作を行った後の内部状態と前記第２記憶手段に記憶されている前記内部状態が一致しない場合は、エラー処理を行う、
請求項１に記載の情報処理プログラム。
【請求項８】
前記エラー処理手段は、前記実行手段によって実行される操作のうち少なくとも最初の操作が実行される前に、エラーを検出する処理を行う、
請求項１に記載の情報処理プログラム。
【請求項９】
前記エラー処理手段は、前記実行手段によって実行される各操作が実行される前に、エラーを検出する処理を行う、
請求項８に記載の情報処理プログラム。
【請求項１０】
前記エラー処理手段は、前記実行手段によって実行される操作のうち少なくとも最後の操作が実行された後であって、該操作によるデータ格納処理が行われる前に、エラーを検出する処理を行う、
請求項１に記載の情報処理プログラム。
【請求項１１】
前記エラー処理手段は、前記実行手段によって実行される各操作が実行された後であって、該操作によるデータ格納処理が行われる前に、エラーを検出する処理を行う、
請求項１０に記載の情報処理プログラム。
【請求項１２】
一連の操作を記憶している第１記憶手段と、
操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶している第２記憶手段と、
前記第１記憶手段に記憶された操作を実行する実行手段と、
前記実行手段による実行の前又は後の画面から前記領域情報を用いて、変化しないはずの領域内の情報と前記第２記憶手段に記憶されている情報が一致しない場合は、エラー処理を行うエラー処理手段
を有する情報処理装置。
【請求項１３】
一連の操作を記憶している第１記憶手段と、
操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶している第２記憶手段
を有しているコンピュータ上で、
前記第１記憶手段に記憶された操作を実行する実行ステップと、
前記実行ステップによる実行の前又は後の画面から前記領域情報を用いて、変化しないはずの領域内の情報と前記第２記憶手段に記憶されている情報が一致しない場合は、エラー処理を行うエラー処理ステップ
を行う情報処理方法。
【請求項１４】
コンピュータを、
操作を行う前又は後の画面の情報と、前記画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行うエラー処理手段
として機能させるための情報処理プログラム。
【請求項１５】
操作を行う前又は後の画面の情報と、前記画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行うエラー処理手段
を有する情報処理装置。
【請求項１６】
コンピュータ上で、
操作を行う前又は後の画面の情報と、前記画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行うエラー処理ステップ
を行う情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
特許文献１には、操作対象ＡＰや適用対象ＰＣが変化しても対応可能な自動操作エージェントを提供することを課題とし、画像領域分割エンジンを用いて画像領域特定処理を行う画像認識部によるユーザー操作のアクション単位の処理結果を、オブジェクト特定処理を行うコントロール制御部によるユーザー操作のアクション単位の処理結果とともに、スクリプト同期部によりユーザー操作のアクション単位で記録し、当該記録に従って画像認識部及びコントロール制御部を動作させてユーザーの操作を再演させ、操作対象を特定結果照会部によりユーザー操作のアクション単位で突き合わせて相互チェックすることで、操作対象ＡＰや適用対象ＰＣの変化による影響を検出することが開示されている。
【０００３】
特許文献２には、ＧＵＩ画面の遷移エラーや生成エラーが発生した時に、このエラーの発生原因の特定を容易にすることを課題とし、ＧＵＩアプリケーションテスト支援装置において、ＧＵＩアプリケーションが生成するＧＵＩ画面と、ＧＵＩ画面設計仕様とを比較して、ＧＵＩ画面の生成エラーを判断し、テストスクリプトと対応付けてＧＵＩアプリケーションの実行箇所情報や、エラー発生時に生成されたＧＵＩアプリケーションのトレース情報、エラーＧＵＩ画面などを含むＧＵＩ画面テスト結果情報を生成し、これにより、ＧＵＩ画面のエラーとエラーを発生した時に実行されていたソースコードの箇所が明らかとなり、エラーの発生原因の特定が容易になることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−００５２４５号公報
【特許文献２】特開２０１０−１５２４２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＲＰＡ（Ｒｏｂｏｔｉｃ  Ｐｒｏｃｅｓｓ  Ａｕｔｏｍａｔｉｏｎ）と呼ばれている、操作を自動化するための自動化ツールがある。具体的には、ユーザーによる複数の操作（例えば、画面上でのマウス、キーボードによる操作、タッチパネル上での指、ペンによる操作等）を登録しておき、その登録した操作を実行することにより、定形化された２回目以降の操作を簡単に実行することができるようにしている。
しかし、画面上において、操作対象のレイアウト変更などが発生した場合、ユーザーが操作を希望する画面上の位置が、登録した画面上の位置と異なってしまう。そのため、ユーザーの希望する操作と異なる操作が実行されてしまうことになる。
本発明は、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる情報処理プログラム、情報処理装置及び情報処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、コンピュータを、一連の操作を記憶している第１記憶手段と、操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶している第２記憶手段と、前記第１記憶手段に記憶された操作を実行する実行手段と、前記実行手段による実行の前又は後の画面から前記領域情報を用いて、変化しないはずの領域内の情報と前記第２記憶手段に記憶されている情報が一致しない場合は、エラー処理を行うエラー処理手段として機能させるための情報処理プログラムである。
【０００７】
請求項２の発明は、前記領域内の情報として、該領域内の画像を用いる、請求項１に記載の情報処理プログラムである。
【０００８】
請求項３の発明は、前記領域内の情報として、該領域内の特性情報を用いる、請求項１に記載の情報処理プログラムである。
【０００９】
請求項４の発明は、操作を実行する前における画面と別時点で該操作を実行する前における画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、前記第２記憶手段に記憶させるように制御する制御手段をさらに有する請求項１に記載の情報処理プログラムである。
【００１０】
請求項５の発明は、操作を実行した後における画面と別時点で該操作を実行した後における画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、前記第２記憶手段に記憶させるように制御する制御手段をさらに有する請求項１に記載の情報処理プログラムである。
【００１１】
請求項６の発明は、操作を実行する前の画面と該操作を実行した後の画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、前記第２記憶手段に記憶させるように制御する制御手段をさらに有する請求項１に記載の情報処理プログラムである。
【００１２】
請求項７の発明は、前記第２記憶手段は、前記操作を行った後の内部状態を記憶しており、前記エラー処理手段は、前記操作を行った後の内部状態と前記第２記憶手段に記憶されている前記内部状態が一致しない場合は、エラー処理を行う、請求項１に記載の情報処理プログラムである。
【００１３】
請求項８の発明は、前記エラー処理手段は、前記実行手段によって実行される操作のうち少なくとも最初の操作が実行される前に、エラーを検出する処理を行う、請求項１に記載の情報処理プログラムである。
【００１４】
請求項９の発明は、前記エラー処理手段は、前記実行手段によって実行される各操作が実行される前に、エラーを検出する処理を行う、請求項８に記載の情報処理プログラムである。
【００１５】
請求項１０の発明は、前記エラー処理手段は、前記実行手段によって実行される操作のうち少なくとも最後の操作が実行された後であって、該操作によるデータ格納処理が行われる前に、エラーを検出する処理を行う、請求項１に記載の情報処理プログラムである。
【００１６】
請求項１１の発明は、前記エラー処理手段は、前記実行手段によって実行される各操作が実行された後であって、該操作によるデータ格納処理が行われる前に、エラーを検出する処理を行う、請求項１０に記載の情報処理プログラムである。
【００１７】
請求項１２の発明は、一連の操作を記憶している第１記憶手段と、操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶している第２記憶手段と、前記第１記憶手段に記憶された操作を実行する実行手段と、前記実行手段による実行の前又は後の画面から前記領域情報を用いて、変化しないはずの領域内の情報と前記第２記憶手段に記憶されている情報が一致しない場合は、エラー処理を行うエラー処理手段を有する情報処理装置である。
【００１８】
請求項１３の発明は、一連の操作を記憶している第１記憶手段と、操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報と該領域内の情報を記憶している第２記憶手段を有しているコンピュータ上で、前記第１記憶手段に記憶された操作を実行する実行ステップと、前記実行ステップによる実行の前又は後の画面から前記領域情報を用いて、変化しないはずの領域内の情報と前記第２記憶手段に記憶されている情報が一致しない場合は、エラー処理を行うエラー処理ステップを有する情報処理方法である。
【００１９】
請求項１４の発明は、コンピュータを、操作を行う前又は後の画面の情報と、前記画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行うエラー処理手段として機能させるための情報処理プログラムである。
【００２０】
請求項１５の発明は、操作を行う前又は後の画面の情報と、前記画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行うエラー処理手段を有する情報処理装置である。
【００２１】
請求項１６の発明は、コンピュータ上で、操作を行う前又は後の画面の情報と、前記画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行うエラー処理ステップを行う情報処理方法である。
【発明の効果】
【００２２】
請求項１の情報処理プログラムによれば、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００２３】
請求項２の情報処理プログラムによれば、領域内の画像を用いて、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００２４】
請求項３の情報処理プログラムによれば、領域内の特性情報を用いて、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００２５】
請求項４の情報処理プログラムによれば、操作を実行する前における画面と別時点でその操作を実行する前における画面から、変化していない領域を示す領域情報とその領域内の情報を抽出することができる。
【００２６】
請求項５の情報処理プログラムによれば、操作を実行した後における画面と別時点でその操作を実行した後における画面から、変化していない領域を示す領域情報とその領域内の情報を抽出することができる。
【００２７】
請求項６の情報処理プログラムによれば、操作を実行する前の画面とその操作を実行した後の画面から、変化していない領域を示す領域情報とその領域内の情報を抽出することができる。
【００２８】
請求項７の情報処理プログラムによれば、操作を行った後の内部状態と予め記憶されている内部状態が一致しない場合は、エラー処理を行うことができる。
【００２９】
請求項８の情報処理プログラムによれば、最初の操作が実行される前に、エラーを検出する処理を行うことができる。
【００３０】
請求項９の情報処理プログラムによれば、各操作が実行される前に、エラーを検出する処理を行うことができる。
【００３１】
請求項１０の情報処理プログラムによれば、最後の操作が実行された後であって、その操作によるデータ格納処理が行われる前に、エラーを検出する処理を行うことができる。
【００３２】
請求項１１の情報処理プログラムによれば、各操作が実行された後であって、その操作によるデータ格納処理が行われる前に、エラーを検出する処理を行うことができる。
【００３３】
請求項１２の情報処理装置によれば、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００３４】
請求項１３の情報処理方法によれば、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００３５】
請求項１４の情報処理プログラムによれば、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００３６】
請求項１５の情報処理装置によれば、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【００３７】
請求項１６の情報処理方法によれば、ユーザーの希望する操作と異なる操作が実行されそうな場合又は実行された場合に、エラー処理を行うことができる。
【図面の簡単な説明】
【００３８】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を利用したシステム構成例を示す説明図である。
【図３】自動操作による処理例を示す説明図である。
【図４】自動操作による処理例を示す説明図である。
【図５】自動操作による処理例を示す説明図である。
【図６】自動操作による処理例を示す説明図である。
【図７】本実施の形態による処理例を示すフローチャートである。
【図８】本実施の形態による処理例を示すフローチャートである。
【図９】検証領域テーブルのデータ構造例を示す説明図である。
【図１０】検証領域テーブルのデータ構造例を示す説明図である。
【図１１】本実施の形態による処理例を示す説明図である。
【図１２】本実施の形態による処理例を示す説明図である。
【図１３】本実施の形態による処理例を示す説明図である。
【図１４】本実施の形態による処理例を示す説明図である。
【図１５】本実施の形態による処理例を示す説明図である。
【図１６】本実施の形態による処理例を示す説明図である。
【図１７】本実施の形態による処理例を示すフローチャートである。
【図１８】操作事前・事後画面テーブルのデータ構造例を示す説明図である。
【図１９】本実施の形態による処理例を示すフローチャートである。
【図２０】本実施の形態による処理例を示すフローチャートである。
【図２１】本実施の形態による処理例を示す説明図である。
【図２２】テーブルのデータ構造例を示す説明図である。
【図２３】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００３９】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係、ログイン等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。また、「Ａ、Ｂ、Ｃ」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その１つのみを選んでいる場合（例えば、Ａのみ）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００４０】
本実施の形態である情報処理装置１００は、操作を自動化するものであって、図１の例に示すように、自動操作モジュール１０５、表示制御モジュール１２５、検証領域記憶モジュール１３０、領域抽出モジュール１３５、エラー処理モジュール１４０を有している。例えば、前述したＲＰＡが該当する。ＲＰＡに組み込んで、ＲＰＡの実行前又は実行後のエラーを検出するものである。また、ＲＰＡに組み込むことの他に、ＲＤＡ（Ｒｏｂｏｔｉｃ  Ｄｅｓｋｔｏｐ  Ａｕｔｏｍａｔｉｏｎ）に組み込んでもよい。以下、例示する場合は、主にＲＰＡを用いる。
【００４１】
自動操作モジュール１０５は、操作受付モジュール１１０、操作記憶モジュール１１５、操作実行モジュール１２０を有している。自動操作モジュール１０５は、例えば、ＲＰＡ等であってもよい。
操作受付モジュール１１０は、操作記憶モジュール１１５、操作実行モジュール１２０と接続されている。操作受付モジュール１１０は、ユーザーの操作を受け付ける。例えば、前述したように、画面上でのマウス、キーボードによる操作、タッチパネル上での指、ペンによる操作の他に、カメラ、マイク等を用いたユーザーの操作（視線、ジェスチャ、音声等も含む）を受け付けるようにしてもよい。
【００４２】
操作記憶モジュール１１５は、操作受付モジュール１１０、操作実行モジュール１２０と接続されている。操作記憶モジュール１１５は、一連の操作を記憶している。例えば、ＲＰＡ等においては、一連の操作として、具体的には、操作種別（複写、クリック等）、その操作を行った座標等が操作順に記憶される。
操作実行モジュール１２０は、自動操作モジュール１０５、操作記憶モジュール１１５、表示制御モジュール１２５と接続されている。操作実行モジュール１２０は、操作受付モジュール１１０によって受け付けられた操作、又は、操作記憶モジュール１１５に記憶された操作（一連の操作）を実行する。操作記憶モジュール１１５に記憶された操作を実行することが、ＲＰＡ等における処理である。
【００４３】
表示制御モジュール１２５は、自動操作モジュール１０５の操作実行モジュール１２０、検証領域記憶モジュール１３０、領域抽出モジュール１３５、エラー処理モジュール１４０と接続されている。表示制御モジュール１２５は、液晶ディスプレイ等の表示装置における画面への表示を制御する。例えば、操作実行モジュール１２０による実行結果、エラー処理モジュール１４０によるエラーである旨（又は、エラーが発生し得る（又は、発生した）可能性が高い旨）等を表示する。表示の他に、スピーカーによる音声出力、触覚デバイスを用いた触感等によって、ユーザーへのメッセージを提示するようにしてもよい。また、エラー処理として、自動処理の中断（又は、中止）、ユーザーによる確認を促す等を行ってもよい。
【００４４】
検証領域記憶モジュール１３０は、表示制御モジュール１２５、領域抽出モジュール１３５、エラー処理モジュール１４０と接続されている。検証領域記憶モジュール１３０は、操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報とその領域内の情報を記憶している。
ここで「領域情報」は、操作を行う前と後において、変化しない領域を示す情報であればよい。具体例として、その領域が矩形である場合は、その矩形を示す情報（例えば、矩形の左上の座標と幅と高さ等の情報）であってもよいし、その領域が多角形である場合は、その多角形を示す情報であってもよいし、マスク情報であってもよい。なお、マスク情報は、領域の内側と外側を示す情報によって構成されており、マスク情報と対象画像（画面画像）との論理積（ＡＮＤ）によるマスク処理によって、領域内の画像を抽出できる。
また、「領域内の情報」として、その領域内の画像を用いるようにしてもよい。
また、「領域内の情報」として、その領域内の特性情報（データ特性ともいう）を用いるようにしてもよい。
ここで「領域内の特性情報」として、画面に表示されている情報自体又はその情報の属性が該当する。例えば、画面に文字列が表示されている場合は、その文字列、その文字列の属性（英字数字等の文字種、文字数、文字の範囲（数字である場合は、数値の範囲等））等がある。
【００４５】
領域抽出モジュール１３５は、表示制御モジュール１２５、検証領域記憶モジュール１３０、エラー処理モジュール１４０と接続されている。領域抽出モジュール１３５は、操作を実行する前における画面と別時点でその操作を実行する前における画面から、変化していない領域を示す領域情報とその領域内の情報を抽出し、検証領域記憶モジュール１３０に記憶させるように制御する。
対象としている操作は繰り返し行われる。ここで「別時点」とは、複数回の操作が行われた後の、異なる回数における操作をいう。例えば、３回目の操作が行われた場合は、１回目又は２回目の操作のことである。
具体的には、以下のような操作が行われ場合、
（１）１回目の自動操作：画面Ａ−１→操作Ａ→画面Ｂ−１→操作Ｂ→画面Ｃ−１
（２）２回目の自動操作：画面Ａ−２→操作Ａ→画面Ｂ−２→操作Ｂ→画面Ｃ−２
（３）３回目の自動操作：画面Ａ−３→操作Ａ→画面Ｂ−３→操作Ｂ→画面Ｃ−３
『「操作を実行する前における画面」と「別時点でその操作を実行する前における画面」』として、操作Ａにおいては、画面Ａ−１と画面Ａ−２、画面Ａ−１と画面Ａ−３、画面Ａ−２と画面Ａ−３、画面Ａ−１と画面Ａ−２と画面Ａ−３の組み合わせ、操作Ｂにおいては、画面Ｂ−１と画面Ｂ−２、画面Ｂ−１と画面Ｂ−３、画面Ｂ−２と画面Ｂ−３、画面Ｂ−１と画面Ｂ−２と画面Ｂ−３の組み合わせが該当する。比較対象は、２つの画面であってもよいし、３つ以上の画面であってもよい。
【００４６】
また、領域抽出モジュール１３５は、操作を実行した後における画面と別時点でその操作を実行した後における画面から、変化していない領域を示す領域情報と該領域内の情報を抽出し、検証領域記憶モジュール１３０に記憶させるように制御するようにしてもよい。
ここで『「操作を実行した後における画面」と「別時点でその操作を実行した後における画面」』として、前述の例では、操作Ａにおいては、画面Ｂ−１と画面Ｂ−２、画面Ｂ−１と画面Ｂ−３、画面Ｂ−２と画面Ｂ−３、画面Ｂ−１と画面Ｂ−２と画面Ｂ−３の組み合わせ、操作Ｂにおいては、画面Ｃ−１と画面Ｃ−２、画面Ｃ−１と画面Ｃ−３、画面Ｃ−２と画面Ｃ−３、画面Ｃ−１と画面Ｃ−２と画面Ｃ−３の組み合わせが該当する。比較対象は、２つの画面であってもよいし、３つ以上の画面であってもよい。
【００４７】
また、領域抽出モジュール１３５は、操作を実行する前の画面とその操作を実行した後の画面から、変化していない領域を示す領域情報とその領域内の情報を抽出し、検証領域記憶モジュール１３０に記憶させるように制御するようにしてもよい。
ここで『「操作を実行する前の画面」と「その操作を実行した後の画面」』として、前述の例では、操作Ａにおいては、画面Ａ−１と画面Ｂ−１、画面Ａ−２と画面Ｂ−２、画面Ａ−３と画面Ｂ−３の組み合わせが該当する。操作Ｂにおいては、画面Ｂ−１と画面Ｃ−１、画面Ｂ−２と画面Ｃ−２、画面Ｂ−３と画面Ｃ−３の組み合わせが該当する。比較対象は、操作前と操作後の２つの画面である。
【００４８】
エラー処理モジュール１４０は、表示制御モジュール１２５、検証領域記憶モジュール１３０、領域抽出モジュール１３５と接続されている。エラー処理モジュール１４０は、操作を行う前又は後の画面の情報と、画面の変化しない領域内の情報とが、一致しない場合は、エラー処理を行う。具体的には、エラー処理モジュール１４０は、操作実行モジュール１２０による実行の前又は後の画面から領域情報を用いて、変化しないはずの領域内の情報と検証領域記憶モジュール１３０に記憶されている情報が一致しない場合は、エラー処理を行う。
【００４９】
また、検証領域記憶モジュール１３０は、操作を行った後の内部状態を記憶していてもよい。
ここで「内部状態」として、例えば、内部バッファに複写された情報が該当する。具体的には、ショートカットキーである「Ｃｔｒｌ」キーを押しながら「Ｃ」キーを押す動作によって、その際に選択されている情報が内部バッファに複写されるが、その複写された情報が該当する。もちろんのことながら、ショートカットキーだけでなく、マウス操作による「コピー」操作等であってもよい。もちろんのことながら、この内部バッファ内の情報は、領域抽出モジュール１３５によって抽出可能である。
そして、エラー処理モジュール１４０は、操作を行った後の内部状態と検証領域記憶モジュール１３０に記憶されている内部状態が一致しない場合は、エラー処理を行うようにしてもよい。
【００５０】
また、エラー処理モジュール１４０は、操作実行モジュール１２０によって実行される操作のうち少なくとも最初の操作が実行される前に、エラーを検出する処理を行うようにしてもよい。
ここで「エラーを検出する処理」は、「操作実行モジュール１２０による実行の前又は後の画面から領域情報を用いて、変化しないはずの領域内の情報と検証領域記憶モジュール１３０に記憶されている情報が一致するか否かを判断する処理」である。
また、エラー処理モジュール１４０は、操作実行モジュール１２０によって実行される各操作が実行される前に、エラーを検出する処理を行うようにしてもよい。
【００５１】
また、エラー処理モジュール１４０は、操作実行モジュール１２０によって実行される操作のうち少なくとも最後の操作が実行された後であって、その操作によるデータ格納処理が行われる前に、エラーを検出する処理を行うようにしてもよい。
また、エラー処理モジュール１４０は、操作実行モジュール１２０によって実行される各操作が実行された後であって、その操作によるデータ格納処理が行われる前に、エラーを検出する処理を行うようにしてもよい。
【００５２】
図２は、本実施の形態を利用したシステム構成例を示す説明図である。
図２（ａ）は、スタンドアロンとしてのパーソナルコンピュータ２００に情報処理装置１００を構築した例を示している。パーソナルコンピュータ２００は、ユーザー２５０により使用され、情報処理装置１００を有している。単一アプリケーション、複数アプリケーションに対応して、主にＲＤＡ（ＲＰＡを排除するものではない）に対応している。例えば、マクロ機能など作業の半自動化を実現させる機能を活用することによって、大量の情報を規則的に整理する反復作業や、決められたプロセスにそって定常的に行われるルーティンワーク(定型業務)等のアプリケーションに対する自動化を行う。
【００５３】
図２（ｂ）は、通信回線２９０を介してユーザー端末２１０が情報処理装置１００を利用するシステム構成とした例を示している。
ユーザー端末２１０（ユーザー端末２１０Ａ、ユーザー端末２１０Ｂ、ユーザー端末２１０Ｃ）は、ユーザー２５０（ユーザー２５０Ａ、ユーザー２５０Ｂ、ユーザー２５０Ｃ）によって使用される。情報処理装置１００、ユーザー端末２１０Ａ、ユーザー端末２１０Ｂ、ユーザー端末２１０Ｃは、通信回線２９０を介してそれぞれ接続されている。通信回線２９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、情報処理装置１００による機能は、クラウドサービスとして実現してもよい。単一アプリケーション、複数アプリケーションに対応して、主にＲＰＡ（ＲＤＡを排除するものではない）に対応している。例えば、複数アプリケーションの連携を必要とする単純作業を行い、そのために、ルールエンジン、画像認識、座標取得、業務フロー管理等の機能が搭載されていてもよい。
【００５４】
図３〜図６を用いて、ＲＰＡによる自動操作の処理例を説明する。図３、４は正常動作の例を示すものであり、図５、６は異常動作の例を示すものである。
図３は、自動操作による処理例を示す説明図である。操作実行前の状態例を示すものである。
画面３００には、左にＷｅｂページ３３０、右に表計算ソフト画面３４０が表示されている。そして、Ｗｅｂページ３３０には、表３１０が表示されており、表計算ソフト画面３４０には、表３２０が表示されている。
ユーザー２５０の処理内容として、毎日、左にある表３１０内の価格を、右にある表３２０内の価格欄に複写する操作が行われるとする。これをＲＰＡの対象とする。
表３１０には、第１行にくだものの種類、第２行にそのくだものの価格が記載されている。具体的には、表３１０は２行３列の表であり、列毎に「りんご：１００円」、「オレンジ：８０円」、「ぶどう：５００円」であることを示している。
表３２０には、第１列にくだものの種類が記載されており、第２列にそのくだものの価格が記載される。具体的には、表３２０は、３行２列の表であり、行毎に「りんご：（空白）円」、「オレンジ：（空白）円」、「ぶどう：（空白）円」であることを示している。
【００５５】
図４は、自動操作による処理例を示す説明図である。操作実行後の状態例を示すものである。
図３の例に示した状態で、表３１０の価格を表３２０の価格欄に複写したい場合、自動操作したい内容は以下の通りである。
ユーザー２５０の操作によって、表３１０の第２行の値（価格）を選択し、表３２０の第２列に選択内容を複写（コピー）する。
つまり、表３１０の第２行第１列の「１００円」を選択し表３２０の第１行第２列に選択内容を複写し、表３１０の第２行第２列の「８０円」を選択し表３２０の第２行第２列に選択内容を複写し、表３１０の第２行第３列の「５００円」を選択し表３２０の第３行第２列に選択内容を複写することになる。
【００５６】
この場合の、自動操作のための操作記憶モジュール１１５におけるＧＵＩ記憶内容は以下の通りとなる。［］で囲まれた番号の行が記憶内容になる。
（１）  開始
［２１］  Ｗｅｂページ３３０を開く。
［２２］  表計算ソフト画面３４０を開く。
（３）  データ編集開始。
［４１］  左クリック。場所は、表３１０の第２行第１列の最初の文字の左である。
［４２］  Ｓｈｉｆｔキーを押しながら左クリック。場所は、表３１０の第２行第１列の最後の文字の右である。
［４３］  Ｃｔｒｌキーを押しながらＣを押す。
［４４］  左クリック。場所は、表３２０の第１行第２列である。
［４５］  Ｃｔｒｌキーを押しながらＶを押す。
［４１］から［４５］までを、場所を変更しながら繰り返し、データ編集をする。
（５）  データ編集終了。
［６１］  表３２０に記入したデータを保存する。
［６２］  Ｗｅｂページ３３０を閉じる。
［６３］  表計算ソフト画面３４０を閉じる。
（７）  終了
このＧＵＩ記憶内容にしたがって、ＲＰＡによる自動操作が行われると、図３の例に示す状態から、図４の例に示す状態になる。つまり、表３１０の価格「１００円」「８０円」「５００円」が表３２０に複写される。
【００５７】
図５は、自動操作による処理例を示す説明図である。操作実行前の状態例を示すものである。
画面５００には、左にＷｅｂページ５３０、右に表計算ソフト画面５４０が表示されている。そして、Ｗｅｂページ５３０には、表５１０が表示されており、表計算ソフト画面５４０には、表５２０が表示されている。
表５１０は、２行３列の表であり、列毎に「りんご：１００円」、「オレンジ：８０円」、「ぶどう：５００円」であることを示している。
ただし、図３の例に示した表３１０とは異なり、第１行と第２行が入れ替わり、第１行が価格、第２行がくだものの種類を示している。
【００５８】
図６は、自動操作による処理例を示す説明図である。操作実行後の状態例を示すものである。
図５の例に示した状態で、本実施の形態を組み込んでいないＲＰＡ（従来のＲＰＡ）で処理を行った場合、表５１０の第２行の値（商品名）を、表５２０の第２列に複写している。
つまり、表５１０の第２行第１列の「りんご」を表５２０の第１行第２列に複写し、表５１０の第２行第２列の「オレンジ」を表５２０の第２行第２列に複写し、表５１０の第２行第３列の「ぶどう」を表５２０の第３行第２列に複写している。
これは、表５１０内がいつもとは異なっているにもかかわらず、座標（画面上のｘｙ座標、表内の行列に指示される座標（第１行第１列のセル等））にしたがって複写処理を行っていることから、本来の価格（表５１０内の第１行）を表５２０の第２列に複写することができなかったものであり、ユーザーが希望した結果とは異なるものとなっている。本実施の形態によると、このような場合は、エラー処理が行われる。
【００５９】
図７は、本実施の形態による処理例を示すフローチャートである。
ステップＳ７０２では、ＲＰＡ処理の事前準備が完了したか否かを判断し、完了した場合はステップＳ７０４へ進み、それ以外の場合は完了するまで待機する。例えば、ＲＰＡの自動操作の内容（「一連の操作」の一例）が操作記憶モジュール１１５に記憶されていること、画面内の変化しない領域を示す領域情報とその領域内の情報が操作実行モジュール１２０に記憶されていることを確認する。
ステップＳ７０４では、事前検証を行う。ステップＳ７０４の詳細な処理については、図８の例に示すフローチャートを用いて後述する。
ステップＳ７０６では、自動操作を行う。具体的には、ＲＰＡ処理を行う。
ステップＳ７０８では、事後検証を行う。ステップＳ７０８の詳細な処理については、図８の例に示すフローチャートを用いて後述する。
【００６０】
図８は、本実施の形態による処理例を示すフローチャートである。
ステップＳ８０２では、現在の画面から検証領域内の画像（Ａ）を抽出する。検証領域内の画像（Ａ）を抽出するのに、例えば、検証領域テーブル９００を用いる。検証領域テーブル９００は、検証領域記憶モジュール１３０に記憶されている。図９は、検証領域テーブル９００のデータ構造例を示す説明図である。検証領域テーブル９００は、ＲＰＡ−ＩＤ欄９１０、検証領域画像欄９２０、検証領域マスク画像欄９３０を有している。ＲＰＡ−ＩＤ欄９１０は、本実施の形態において、ＲＰＡを一意に識別するための情報（ＲＰＡ−ＩＤ：ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を記憶している。検証領域画像欄９２０は、そのＲＰＡにおける検証領域画像を記憶している。検証領域マスク画像欄９３０は、その検証領域画像を取り出すための検証領域マスク画像（「変化しない領域を示す領域情報」の一例）を記憶している。
つまり、ステップＳ８０２では、処理開始されたＲＰＡに対応する検証領域テーブル９００の検証領域マスク画像欄９３０を用いて、現在の画面から画像（Ａ）を抽出すればよい。具体的には、現在の画面のスナップショット画像を取得し、そのスナップショット画像と検証領域マスク画像との論理積処理を行って、画像（Ａ）（「変化しないはずの領域内の情報」の一例）を抽出する。なお、マスク画像として、例えば、「１」と「０」で表される画像とし、「１」が抽出する部分を示し、「０」が抽出しない部分を示しているものとすれば、論理積処理を施すことによって、「１」の領域内の画像だけを抽出することができる。
【００６１】
ステップＳ８０４では、そのＲＰＡに応じた検証領域の画像（Ｂ）を取り出す。例えば、検証領域テーブル９００から、検証領域画像欄９２０内の検証領域画像（「検証領域記憶モジュール１３０に記憶されている情報（変化しない領域内の情報）」の一例）を取り出せばよい。
【００６２】
ステップＳ８０６では、画像（Ａ）と画像（Ｂ）とを比較する。画像の比較処理は、従来の処理を用いればよい。例えば、両者間で、排他的論理和（ＥＯＲ）処理を行えばよい。
ステップＳ８０８では、画像（Ａ）と画像（Ｂ）とが不一致であるか否かを判断し、不一致の場合はステップＳ８１０へ進み、それ以外の場合（合致の場合）は処理を終了する（ステップＳ８９９）。なお、不一致の場合は、変化しないはずの領域について、何かしらの変化があったことを示しており、エラー処理を行うべきである。
ステップＳ８１０では、エラー処理を行う。例えば、ステップＳ７０４ではエラーが発生し得る可能性が高い旨のエラーメッセージを表示してもよい。ステップＳ７０８ではエラーが発生した可能性が高い旨のエラーメッセージを表示してもよい。さらに、ステップＳ８０６での比較によって不一致となった部分の画像（前述のＥＯＲ処理後の画像）を表示してもよい。ユーザー２５０が、その不一致となっている部分があっても、このＲＰＡでの処理では不具合が発生しないと判断した場合は、処理を続行できるようにしてもよい。例えば、Ｗｅｂページ３３０内の表３１０以外の領域（例えば、日付等の表示領域）に不一致が発生した場合は、「処理続行」ボタンが選択され、処理が続行されるようにしてもよい。
【００６３】
なお、検証領域テーブル９００の代わりに、検証領域テーブル１０００を用いてもよい。図１０は、検証領域テーブル１０００のデータ構造例を示す説明図である。
検証領域テーブル１０００は、ＲＰＡ−ＩＤ欄１０１０、事前／事後欄１０１５、検証領域画像欄１０２０、検証領域マスク画像欄１０３０を有している。ＲＰＡ−ＩＤ欄１０１０は、ＲＰＡ−ＩＤを記憶している。事前／事後欄１０１５は、事前検証用であるか、事後検証用であるかを示す情報（フラグ）を記憶している。検証領域画像欄１０２０は、検証領域画像を記憶している。検証領域マスク画像欄１０３０は、検証領域マスク画像を記憶している。検証領域テーブル１０００は、検証領域テーブル９００に事前／事後欄１０１５を付加したものである。ステップＳ７０４での検証にあっては、事前／事後欄１０１５内が事前検証用フラグとなっているものを用い、ステップＳ７０８での検証にあっては、事前／事後欄１０１５内が事後検証用フラグとなっているものを用いればよい。
【００６４】
図１１〜２２の例を用いて、検証領域記憶モジュール１３０に記憶される「操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報とその領域内の情報」の例を示す。
図１１は、本実施の形態による処理例を示す説明図である。検証領域テーブル９００の検証領域画像欄９２０内の一例を示すものである。
画面１１００は、ＲＰＡ処理前の状態を示している。つまり、Ｗｅｂページ１１３０を開くと、表１１１０の価格だけが変更され、その他の文字列（表の名前やくだもの名）、図形枠、空白部分等は変更されないと仮定する。
また、表計算ソフト画面１１４０を開くと、表１１２０は変更されないと仮定する。
画面１１００に、Ｗｅｂページ１１３０、表１１１０、表計算ソフト画面１１４０、表１１２０が表示された状態での不変領域１１５０を示している。なお、不変領域１１５０は、斜線が引かれている部分である。
また、画面１１００内の不変領域１１５０以外の領域（斜線以外の領域）は、変更される領域である。
【００６５】
図１２、図１３は、本実施の形態による処理例を示す説明図である。
図１２の例は、図１１の例に示した不変領域１１５０を用いて、画面１１００から検証領域画像１２００を抽出した結果を示すものである。表１１１０の第２行は空白になっている。
この検証領域画像１２００（不変領域１１５０内の画像）が、検証領域テーブル９００の検証領域画像欄９２０（又は、検証領域テーブル１０００の検証領域画像欄１０２０）内の検証領域画像となり、不変領域１１５０をマスク化したものが、検証領域テーブル９００の検証領域マスク画像欄９３０（又は、検証領域テーブル１０００の検証領域マスク画像欄１０３０）内のマスク画像となる。具体的には、マスク画像は、不変領域１１５０（斜線部分）を「１」とし、それ以外の部分を「０」とした画像である。
そして、図１３の例に示している元画面１３００内の変更領域画像１３１０は、検証領域画像１２００以外の画像である。
この場合、図７の例に示すフローチャート内のステップＳ７０４では、図１２の例に示した検証領域画像１２００と図５の例に示した画面５００のスナップショット画像を比較することになる。表５１０の第１列の領域内の画像が異なるので、エラー処理が行われることになる。
【００６６】
図１４は、本実施の形態による処理例を示す説明図である。検証領域テーブル９００の検証領域画像欄９２０内の一例を示すものである。
画面１４００は、ＲＰＡ処理後の状態を示している。つまり、ＲＰＡ処理によるデータ編集（表１４１０の価格データを表１４２０の第２列に複写する操作）が行われた結果を示している。
画面１４００に、Ｗｅｂページ１４３０、表１４１０、表計算ソフト画面１４４０、表１４２０が表示され、ＲＰＡ処理後の状態での不変領域１４５０を示している。なお、不変領域１４５０は、斜線が引かれている部分である。
また、画面１４００内の不変領域１４５０以外の領域（斜線以外の領域）は、変更される領域である。
【００６７】
図１５、図１６は、本実施の形態による処理例を示す説明図である。
図１５の例は、図１４の例に示した不変領域１４５０を用いて、画面１４００から検証領域画像１５００を抽出した結果を示すものである。表１４１０の第２行、表１４２０の第２列は空白になっている。
この検証領域画像１５００（不変領域１４５０内の画像）が、検証領域テーブル９００の検証領域画像欄９２０（又は、検証領域テーブル１０００の検証領域画像欄１０２０）内の検証領域画像となり、不変領域１４５０をマスク化したものが、検証領域テーブル９００の検証領域マスク画像欄９３０（又は、検証領域テーブル１０００の検証領域マスク画像欄１０３０）内のマスク画像となる。
そして、図１６の例に示している元画面１６００内の変更領域画像１６１０、変更領域画像１６２０は、検証領域画像１５００以外の画像である。
この場合、図７の例に示すフローチャート内のステップＳ７０８では、図１５の例に示した検証領域画像１５００と図６の例に示した画面５００のスナップショット画像を比較することになる。表５１０の第１列の領域内の画像が異なるので、エラー処理が行われることになる。
【００６８】
図１７の例に示すフローチャートは、スナップショット画像の収集処理を示すものである。
図１７（ａ）は、本実施の形態による処理例を示すフローチャートである。具体的には、ＲＰＡの設定において、設定前（ユーザー２５０による操作前）と設定後（ユーザー２５０による操作後）の画面のスナップショット画像を収集するものである。
ステップＳ１７０２ａでは、自動操作設定前の画面のスナップショット画像を生成する。
ステップＳ１７０４ａでは、自動操作設定後の画面のスナップショット画像を生成する。
【００６９】
図１７（ｂ）は、本実施の形態による処理例を示すフローチャートである。具体的には、ＲＰＡを設定した後において、自動操作前と自動操作後の画面のスナップショット画像を収集するものである。
ステップＳ１７０２ｂでは、自動操作実行前の画面のスナップショット画像を生成する。
ステップＳ１７０４ｂでは、自動操作実行後の画面のスナップショット画像を生成する。
【００７０】
図１８は、操作事前・事後画面テーブル１８００のデータ構造例を示す説明図である。操作事前・事後画面テーブル１８００は、図１７の例に示したフローチャートによって生成されたスナップショット画像を記憶するものである。
操作事前・事後画面テーブル１８００は、ＲＰＡ−ＩＤ欄１８１０、日時欄１８２０、事前／事後欄１８３０、スナップショット画像欄１８４０を有している。ＲＰＡ−ＩＤ欄１８１０は、ＲＰＡ−ＩＤを記憶している。日時欄１８２０は、スナップショット画像を生成した日時を記憶している。事前／事後欄１８３０は、操作事前画面（ステップＳ１７０２ａ、ステップＳ１７０２ｂ）であるか、操作事後画面（ステップＳ１７０４ａ、ステップＳ１７０４ｂ）であるかを示す情報（フラグ）を記憶している。スナップショット画像欄１８４０は、スナップショット画像を記憶している。
【００７１】
図１９は、本実施の形態による処理例を示すフローチャートである。「操作を実行する前における画面と別時点でその操作を実行する前における画面から、変化していない領域を示す領域情報とその領域内の情報を抽出」、「操作を実行した後における画面と別時点でその操作を実行した後における画面から、変化していない領域を示す領域情報とその領域内の情報を抽出」の処理例を示すものである。
ステップＳ１９０２では、対象ＲＰＡ−ＩＤの事前及び事後のスナップショット画像を抽出する。事前、事後のそれぞれにおいて、複数のスナップショット画像を抽出する。
ステップＳ１９０４では、事前のスナップショット画像間の一致する領域を抽出し、マスク画像を生成する。例えば、一致する領域を抽出するのに、両者の画像間での排他的論理和の否定処理（ＮＯＴ（ＥＯＲ（スナップショット画像Ａ、スナップショット画像Ｂ）））を行えばよい。
ステップＳ１９０６では、事後のスナップショット画像間の一致する領域を抽出し、マスク画像を生成する。
ステップＳ１９０８では、検証領域画像として登録する。具体的には、検証領域テーブル９００又は検証領域テーブル１０００に登録すればよい。具体的には、一致する領域を検証領域画像欄９２０（検証領域画像欄１０２０）、マスク画像を検証領域マスク画像欄９３０（検証領域マスク画像欄１０３０）に記憶させればよい。
【００７２】
図２０は、本実施の形態による処理例を示すフローチャートである。「操作を実行する前の画面とその操作を実行した後の画面から、変化していない領域を示す領域情報とその領域内の情報を抽出」の処理例を示すものである。
ステップＳ２００２では、対象ＲＰＡ−ＩＤの事前及び事後のスナップショット画像を抽出する。
ステップＳ２００４では、事前のスナップショット画像と事後のスナップショット画像との一致する領域を抽出し、マスク画像を生成する。
ステップＳ２００６では、検証領域画像として登録する。具体的には、検証領域テーブル９００又は検証領域テーブル１０００に登録すればよい。
なお、図２０の例に示すフローチャートの処理によって生成した検証領域画像に対して、さらに、事前の検証領域画像と論理積処理を行うことによって、検証領域画像とマスク画像を生成してもよい。
【００７３】
次に、図２１、図２２の例を用いて、検証領域記憶モジュール１３０内の「領域内の情報として、その領域内の特性情報を用いる」例を説明する。
図２１は、本実施の形態による処理例を示す説明図である。
画面２１００に、Ｗｅｂページ２１３０、表２１１０、表計算ソフト画面２１４０、表２１２０を表示した場合に、各部分領域に識別情報（部分領域ＩＤ）を割り当てた例を示している。
つまり、Ｗｅｂページ２１３０の表２１１０以外の領域に「Ａ１−０」、表２１１０内の各セルに「Ａ１−１−１」から「Ａ１−２−３」、表計算ソフト画面２１４０の表２１２０以外の領域に「Ａ２−０」、表２１２０内の各セルに「Ａ２−１−１」から「Ａ２−３−２」のＩＤを割り当てている。
【００７４】
図２２は、テーブル２２００のデータ構造例を示す説明図である。テーブル２２００は、検証領域記憶モジュール１３０に記憶されている。
テーブル２２００は、部分領域ＩＤ欄２２１０、データ編集前の時点のデータ特性欄２２２０、データ編集後の時点のデータ特性欄２２３０を有している。部分領域ＩＤ欄２２１０は、本実施の形態において、部分領域を一意に識別するための情報（部分領域ＩＤ）を記憶している。データ編集前の時点のデータ特性欄２２２０は、その部分領域においてデータ編集前の時点のデータ特性を記憶している。データ編集後の時点のデータ特性欄２２３０は、その部分領域においてデータ編集後の時点のデータ特性を記憶している。
例えば、部分領域「Ａ１−０」について、データ編集前の時点でのデータ特性は「文字列「表１」」であり、データ編集後の時点でのデータ特性は「文字列「表１」」であること、部分領域「Ａ１−２−１」について、データ編集前の時点でのデータ特性は「数字の列＋文字列「円」。数字は２００以下」であり、データ編集後の時点でのデータ特性は「数字の列＋文字列「円」。数字は２００以下」であること、また、部分領域「Ａ２−１−２」について、データ編集前の時点でのデータ特性は「空欄」であり、データ編集後の時点でのデータ特性は「数字の列＋文字列「円」。数字は２００以下」であること等がある。
ここで、「数字は２００以下」等の導出については、複数回の操作結果から統計処理（最大値、最小値、平均値、中央値、最頻値等を求める処理）を行えばよい。
【００７５】
自動操作を開始する時点又は自動操作が終了する時点の画面において、各部分領域のデータの特性を、テーブル２２００に登録する。
自動操作実行時の、操作記憶モジュール１１５に登録された自動操作の実行前又は実行後において、各部分領域について、その部分領域のテーブル２２００に登録されたデータ特性と、実際の対応する部分領域のデータ特性（その部分領域内の文字のデータ特性）とを比較する。
また、自動操作の実行前又は実行後ではなく、自動操作内の各ステップの処理毎に比較してもよい。具体的には、自動操作実行時の、操作記憶モジュール１１５に登録された自動操作内の各ステップの処理前又は処理後において、その処理対象の部分領域のデータ特性（その部分領域内の文字のデータ特性）とテーブル２２００に登録されたデータ特性とを比較する。
そして、不一致ならエラーと判断する。この場合、例えば、エラー表示をして、自動操作処理を中止する。また、エラー表示の内容として、不一致の部分領域を指摘すること、テーブル２２００内の登録内容と実際の操作対象となっている部分領域の内容とを表示すること等を行うようにしてもよい。もちろんのことながら、一致する場合は、自動操作を継続する。
【００７６】
また、画面の内容が変更されない部分領域（例えば、Ａ１−０）と変更される部分領域（例えば、Ａ２−１−２）とを区別して、画面の内容が変更されない部分領域だけについて、その部分領域のデータ特性を登録してもよいし、又は、画面の内容が変更される部分領域だけについて、その部分領域のデータ特性を登録してもよい。これによって、テーブル２２００に登録するデータ量が少なくてすむことになる。例えば、画面の内容が変更されない部分領域だけを抽出し、テーブル２２００と同じデータ特性であって、操作前後に変更されないことを確認すればよい。また、画面の内容が変更される部分領域だけを抽出し、操作前後において、テーブル２２００と同じデータ特性であることを確認すればよい。
【００７７】
テーブル２２００内のデータ特性として、パーソナルコンピュータ２００における内部状態を登録していてもよい。つまり、自動操作後（又は、その自動操作内の各ステップの処理後）の内部状態を、テーブル２２００に登録しておく。前述したように、具体的には、内部状態は、内部バッファに複写された情報等がある。
自動操作の各処理が行われた後に内部データを抽出し、テーブル２２００内のデータと比較することで、エラーを検出する。
【００７８】
図７の例では、ステップＳ７０４、ステップＳ７０８に示すように、ステップＳ７０６の自動操作の前後で検証処理を行っている。「領域内の情報として、その領域内の画像を用いる」場合においても、図２２の例の説明に示したように、自動操作を構成している各ステップの処理の前後で検証処理を行うようにしてもよい。このようにした場合、エラーを見逃すことが無くなる。しかし、自動操作の前後で検証処理を行う場合に比べて、「変化しない領域を示す領域情報とその領域内の情報」の登録作業が多くなり、さらに、自動操作の実行時間も長くなってしまう。
そこで、各ステップの処理前後で検証処理を行う場合よりも、検証処理を少なくするために、図７の例に示すように、自動操作の実行前と実行後で行う。
なお、「自動操作の実行前」として、例えば、「必要なソフトウェア（前述の例では、Ｗｅｂブラウザ、表計算ソフト）を起動し、データ編集の自動操作を開始する前」としてもよい。また、「自動操作の実行後」として、例えば、「データ編集の自動操作を終了し、ソフトウェアに記入したデータを保存する前」としてもよい。
さらに、検証処理を少なくするために、「自動操作の実行後」だけで検証処理を行うようにしてもよい。
なお、「自動操作の実行前」に検出処理を行った場合、データ編集処理をする前にエラーを検出し自動処理を中止できるので、異常なデータ編集操作の開始を防止できる。
「自動操作の実行後」に検出処理を行った場合、データを保存する前にエラーを検出し自動処理を中止できるので、データ保存先のソフトウェアの記憶内容への悪影響を少なくすることができる。
【００７９】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図２３に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ２３０１を用い、記憶装置としてＲＡＭ２３０２、ＲＯＭ２３０３、ＨＤ２３０４を用いている。ＨＤ２３０４として、例えばハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を用いてもよい。操作受付モジュール１１０、操作実行モジュール１２０、表示制御モジュール１２５、領域抽出モジュール１３５、エラー処理モジュール１４０等のプログラムを実行するＣＰＵ２３０１と、そのプログラムやデータを記憶するＲＡＭ２３０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ２３０３と、操作記憶モジュール１１５、検証領域記憶モジュール１３０等としての機能を有する補助記憶装置（フラッシュ・メモリ等であってもよい）であるＨＤ２３０４と、キーボード、マウス、タッチスクリーン、マイク、カメラ（視線検知カメラ等を含む）等に対する利用者の操作（動作、音声、視線等を含む）に基づいてデータを受け付ける受付装置２３０６と、ＣＲＴ、液晶ディスプレイ、スピーカー等の出力装置２３０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース２３０７、そして、それらをつないでデータのやりとりをするためのバス２３０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００８０】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図２３に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２３に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図２３に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００８１】
前述の実施の形態においては、検証領域記憶モジュール１３０に記憶される「操作を行う前又は後の画面を対象として、変化しない領域を示す領域情報とその領域内の情報」（検証領域テーブル９００、検証領域テーブル１０００、テーブル２２００）の生成処理例を示したが、ユーザー２５０等が自動操作の内容を登録する際に、そのユーザー２５０等が画面内の変化しない領域を抽出して、検証領域記憶モジュール１３０に登録するようにしてもよい。
【００８２】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００８３】
１００…情報処理装置
１０５…自動操作モジュール
１１０…操作受付モジュール
１１５…操作記憶モジュール
１２０…操作実行モジュール
１２５…表示制御モジュール
１３０…検証領域記憶モジュール
１３５…領域抽出モジュール
１４０…エラー処理モジュール
２００…パーソナルコンピュータ
２１０…ユーザー端末
２５０…ユーザー
２９０…通信回線
【図１】
2020009279.tif 000003
【図２】
2020009279.tif 000004
【図３】
2020009279.tif 000005
【図４】
2020009279.tif 000006
【図５】
2020009279.tif 000007
【図６】
2020009279.tif 000008
【図７】
2020009279.tif 000009
【図８】
2020009279.tif 000010
【図９】
2020009279.tif 000011
【図１０】
2020009279.tif 000012
【図１１】
2020009279.tif 000013
【図１２】
2020009279.tif 000014
【図１３】
2020009279.tif 000015
【図１４】
2020009279.tif 000016
【図１５】
2020009279.tif 000017
【図１６】
2020009279.tif 000018
【図１７】
2020009279.tif 000019
【図１８】
2020009279.tif 000020
【図１９】
2020009279.tif 000021
【図２０】
2020009279.tif 000022
【図２１】
2020009279.tif 000023
【図２２】
2020009279.tif 000024
【図２３】
2020009279.tif 000025