Excelのアクティブなセルの操作する方法が無い
UiPath Studioでプロセスを作成する際、モダン・クラシックの2つのモードがあります。
現在最新バージョン(23.10.0)を使用するとデフォルトではモダンのプロセスとなります。
そして、モダンのプロセスではExcelのアクティブなセルの操作する方法がありません。(見つかりませんでした)
Excelのアクティブなセル(行)を非表示にしたいが…
このシートの
A列:条件 が0の場合、行を非表示にしたい
という要件があった場合をモダンアクティビティだけでは実装することができません。
アクティブなセルに対して[Ctrl+9](行の非表示)という
キーボードショートカットを効かせることができれば良いのですが、
そもそも「セルをアクティブにする」ということがモダンアクティビティではできないようです。
クラシックアクティビティ「範囲を選択」
実は、モダンのプロセスからでもクラシックアクティビティを使用することができます。
下記画像のように、アクティビティのペインの漏斗のマークをクリックし、
「クラシック」にチェックします。
すると、アクティビティに「クラシック」が表示されます。ここでは
- クラシック > アプリの連携 > Excel > 範囲を選択
を使用してセルをアクティブにします。
コード全体
コード解説
代入
- RowNo・・・アクティブにしたい行数(初期値=2)
Excelプロセススコープ > Excel ファイルを使用
- 繰り返し(後判定)
- 範囲を選択
- 表示・非表示を判定するためにA列のセルをアクティブにします(ここが今回の肝)
- (見えていない部分:"A"+RowNo.ToString)
- セルを読み込み
- 表示・非表示を判定するためにA列のセルを読み込みます(CellValueに出力)
- 条件分岐
- セルを読み込み結果=0 の場合、行を非表示にします(Ctrl+9)
- 代入
- 行数RowNoをインクリメントします
- 範囲を選択
- (後判定)
- セルの入力が空であれば繰り返し終了
結果
以下のようにA列:条件 が0の場合のみ非表示にすることができました。
この方法の賞味期限について
今回はセルをアクティブにしてそのアクティブなセルや行に対して操作する方法を紹介しました。
しかし、UiPathはこれらをクラシックとしているためいずれサポートされなくなるかもしれません。
UiPathのExcel操作の基本思想は
- 表をデータテーブルとしてメモリに読み込み
- UiPath上で各種演算
- その結果をまたExcelに吐き出す
というものだと考えられます。このため、この方法はあくまで応急処置的な方法だと捉えてください。