はこふぐのメモ

めもです

自分へのメモ BluePrism Excelをオブジェクトとして操作する ジャンプ・範囲選択・並べ替え

Blue Prism Learning Editionのライセンス期間中に夜な夜な調べ物をしているブログです。

 

Excelをオブジェクトとして操作するサンプルその②を作ってみました。

試行錯誤中なので、たどり着いた方は参考程度でお願いしたく・・・

 

サンプルでやりたいこと

Excelの中にある表のデータを並べ替えしたい。

どうなんでしょう・・・MS Excel VBOを拡張してやるのがいいんでしょうか?

それともExcelをオブジェクトとして操作するのがいいんでしょうか?

とりあえずこのサンプルではExcelをオブジェクトとして扱って実現しています。

 

オブジェクト

Attach ⇒ Windowを最大化 ⇒ ジャンプ(Ctl+G)指定したセルに移動 ⇒ 表を選択 ⇒ メニューのデータ/並べ替えで並べ替えを実施⇒A1に戻っって終了です。

 

f:id:sazanamifugu:20191126220729p:plain

Windowを最大

f:id:sazanamifugu:20191126221819p:plain

WindowはExcelのアプリケーション全体をWin32モードでスパイした要素になります。

f:id:sazanamifugu:20191126221931p:plain

 

最大化した理由ですが、のちにメニューからデータ、並べ替えを選択した際、「並べ替え」のメニューがWindow内に見えていないと、操作に失敗するため、事前に全画面にしています。Spyの仕方で回避できるんでしょうか??

↓画面が小さすぎで「並べ替え」がなくて操作に失敗した例

f:id:sazanamifugu:20191126222519p:plain


ジャンプ(Ctl+G)

今回操作するExcelは「B2:C9」に表があるため、B2に移動したいです。

「B2」セルを要素としてグローバルマウスクリック(中央)のアクションを実施した場合、B2セルがWindowの表示範囲内にあればうまく動きましたが、表示範囲外にある場合、エラーが発生しました。

というわけでジャンプでセル移動。

f:id:sazanamifugu:20191126223528p:plain

Global Send Keyではうまくいかず、Global Send Key Eventでうまくいきました。

Excelでショートカットキーの送信は全般的にGlobal Send Key Eventならうまくいく感触です。

 

ジャンプWindowの参照先を設定

ジャンプWindowの参照先(R):の既存の値を消去して、移動したいセル”B2”を設定します。

f:id:sazanamifugu:20191126223801p:plain

 

ここもGlobal Send Key Eventです。

Writeステージを使えそうですが、なぜかことごとくうまくいきませんでした。

なぜ・・・?

f:id:sazanamifugu:20191126224021p:plain

Global Send Key Event(グローバルキーイベント送信)の値は

いっこめ:"{Delete}"

にこめ:"B2"

 

ジャンプWindowのOKボタン押下

f:id:sazanamifugu:20191126225422p:plain



 

Ctl+Aで表を選択

Global Send Key Eventで"<{CTRL}A>{CTRL}"。

f:id:sazanamifugu:20191126225422p:plain

 

 メニューの「データ」をクリック

f:id:sazanamifugu:20191126225748p:plain

「並べ替え」をクリック

f:id:sazanamifugu:20191126225812p:plain

 

最優先されるキークリック

最優先されるキー年齢の右にある▽をクリック

f:id:sazanamifugu:20191126225850p:plain

最優先されるキーを選択

最優先されるキーのプルダウンは、UIA名をDynamicとして定義。

f:id:sazanamifugu:20191126230136p:plain

グローバルマウスクリック(中央)のパラメータでソートキーにする「年齢」を設定。

f:id:sazanamifugu:20191126230418p:plain

 

並べ替えOK

f:id:sazanamifugu:20191126230644p:plain

 

A1に戻る Ctl+Home

最後もGlobal Send Key Eventで"<{CTRL}{Home}>{CTRL}"です。

f:id:sazanamifugu:20191126230755p:plain

 

 

プライバシーポリシー
©2019 はこふぐのメモ All rights reserved