WinActor活用コラム

教えて !! スーさん。

第5回「シナリオの実行速度の向上を検証してみる」の巻

目次

  

 

  
スーさんスーさんとサーさんサーさん、ふたりの会話を通してWinActorの利用方法をお伝えします。
  

 

スーさん
そうですね。両方とも正解です。
グループを閉じる、WinActor画面を最小化する、というのはどちらも画面描画を行わないようにする、ということになります。
シナリオを実行する際に画面描画を行うことは、それなりの処理時間を費やしているということです。 そのため、画面描画を停止することで実行速度の向上が見込まれます。
まず、グループを閉じた状態で検証してみます。
先ほどのシナリオの中で、Excelの処理を行っているグループを閉じました。
シナリオを実行します。

 

スーさん
結果は35秒でした。
9秒ほど実行時間が短縮されていますね。

 

スーさん
次に、WinActor画面を最小化して検証してみます。
Excel処理の前後に「WinActorウィンドウを最小化」と「WinActorウィンドウを元に戻す」のライブラリを配置します。

 

スーさん
⑨「WinActorウィンドウを最小化」ライブラリです。
設定値等はありません。

 

スーさん
⑩「WinActorウィンドウを元に戻す」ライブラリです。
こちらも設定値等はありません。

 

スーさん
結果は34秒でした。
グループを閉じた場合とほぼ同じ結果となりました。

 

スーさん
実行速度の向上が見込めそうなことで、他には何か考えられることはありますか。

 

サーさん
画面描画ということであれば、Excelの画面も最小化するというのもあるのかなと思いました。

 

スーさん
良いですね。それではそちらも検証してみましょう。
Excelファイルを開いた後に、Excel画面を最小化して、処理が終わったら元の画面に戻すようにシナリオを変更しました。

 

スーさん
⑪「ウィンドウの表示変更」ライブラリです。
表示状態で「最小化」を選択します。ウィンドウ識別名でExcelの画面を指定します。

 

スーさん
⑫「ウィンドウの表示変更」ライブラリです。
表示状態で「通常表示」を選択します。ウィンドウ識別名でExcelの画面を指定します。

 

スーさん
では、こちらのシナリオを実行してみます。
結果は35秒でした。
グループを閉じた場合と同じ9秒の短縮となりました。

 

サーさん
Excel画面を最小化した場合も、WinActor画面を最小化した場合と同じくらい実行速度が向上できるんですね。

 

スーさん
他に何か実行速度の向上が見込めそうなものはありますか。

 

サーさん
いえ、他に思いつくものはありません。

 

スーさん
では、私の方から1つ提案したいと思います。
それは、変数の共有化です。

「Excel開く(前面化)」などのスクリプト実行のライブラリで、プロパティのスクリプトタブを開くと、 「変数を他のスクリプト実行アクションと共有する」というチェックボックスがあります。

このチェックボックスについて操作マニュアルには以下の説明が書かれています。
「チェックを付けると、スクリプト実行間で変数を共有することができ、値を引き継ぐことができます。」
この説明だけだとよくわかりませんが、変数を共有して値を引き継ぐことにより実行速度の向上が見込まれます。

 

スーさん
それでは検証していきましょう。
②「Excel操作(前面化)」ライブラリ
④「Excel操作(値の取得2)」ライブラリ
⑤「文字列置換」ライブラリ
⑥「Excel操作(値の設定2)」ライブラリ
それぞれのスクリプトタブで「変数を他のスクリプト実行アクションと共有する」のチェックボックスをチェックしました。

シナリオを実行してみます。
結果は14秒でした。なんと30秒も短縮できました。

 

サーさん
えー、ダントツに早くなってなんかすごいですね。
変数を共有することで実行速度が大幅に短縮できることがわかりました。

 

スーさん
ここまでは実行速度向上の対応をそれぞれ単独で実施してきましたが、今度は組み合わせて実施してみます。

グループを閉じるとWinActor最小化はどちらも同じ効果が見込まれるので、今回はWinActor最小化を採用します。
WinActor最小化とExcel最小化を組み合わせて実行したところ、結果は27秒でした。

 

スーさん
さらにそれにプラスして変数共有化を組み合わせて実行したところ、結果は8秒でした。

 

スーさん
それでは実行速度向上の検証結果を整理してみましょう。
このような結果になりました。

 

サーさん
組み合わせることでさらに実行速度の向上ができましたね。
それにしても変数の共有化は最強ですね。

 

スーさん
今回はWinActorシナリオの実行速度の向上に関する検証を行いました。
大量の繰返し処理があるなどで実行時間がかなりかかっているというような場合に、実行時間の短縮に向けて検討の余地があると思いますので参考にしてみてください。

 

サーさん
今回もいろいろと参考になりました。
ありがとうございました。

 

 

 

 


 

目次

 

WinActor活用サイトへ戻る