LoginSignup
3
0

UiPathでExcelのアクティブなセルに対して操作

Posted at

Excelのアクティブなセルの操作する方法が無い

UiPath Studioでプロセスを作成する際、モダン・クラシックの2つのモードがあります。
現在最新バージョン(23.10.0)を使用するとデフォルトではモダンのプロセスとなります。
そして、モダンのプロセスではExcelのアクティブなセルの操作する方法がありません。(見つかりませんでした)

Excelのアクティブなセル(行)を非表示にしたいが…

例えば、下記のようなシートがあったとします。
Excel_pre.png

このシートの
A列:条件 が0の場合、行を非表示にしたい
という要件があった場合をモダンアクティビティだけでは実装することができません。

アクティブなセルに対して[Ctrl+9](行の非表示)という
キーボードショートカットを効かせることができれば良いのですが、
そもそも「セルをアクティブにする」ということがモダンアクティビティではできないようです。

クラシックアクティビティ「範囲を選択」

実は、モダンのプロセスからでもクラシックアクティビティを使用することができます。
下記画像のように、アクティビティのペインの漏斗のマークをクリックし、
「クラシック」にチェックします。
pain.png

すると、アクティビティに「クラシック」が表示されます。ここでは

  • クラシック > アプリの連携 > Excel > 範囲を選択

を使用してセルをアクティブにします。

コード全体

Source1.png

Source2.png

コード解説

代入

  • RowNo・・・アクティブにしたい行数(初期値=2)

Excelプロセススコープ > Excel ファイルを使用

  • 繰り返し(後判定)
    • 範囲を選択
      • 表示・非表示を判定するためにA列のセルをアクティブにします(ここが今回の肝
      • (見えていない部分:"A"+RowNo.ToString)
    • セルを読み込み
      • 表示・非表示を判定するためにA列のセルを読み込みます(CellValueに出力)
    • 条件分岐
      • セルを読み込み結果=0 の場合、行を非表示にします(Ctrl+9)
    • 代入
      • 行数RowNoをインクリメントします
  • (後判定)
    • セルの入力が空であれば繰り返し終了

結果

以下のようにA列:条件 が0の場合のみ非表示にすることができました。
Excel _after.png

この方法の賞味期限について

今回はセルをアクティブにしてそのアクティブなセルや行に対して操作する方法を紹介しました。
しかし、UiPathはこれらをクラシックとしているためいずれサポートされなくなるかもしれません。

UiPathのExcel操作の基本思想は

  • 表をデータテーブルとしてメモリに読み込み
  • UiPath上で各種演算
  • その結果をまたExcelに吐き出す

というものだと考えられます。このため、この方法はあくまで応急処置的な方法だと捉えてください。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0