Excel2016を操作する方法

お疲れ様です。

Excel2016のタブ(ファイル、ホーム、挿入、ページレイアウト、、、の部分)や
コマンドボタンは、ユニークなセレクタを持たないようです。

はじめはショートカットキーで操作可能かと思い、Send Hot Keyアクティビティで
Alt + f などを試してみましたが、Excelは何も反応しませんでした。

仕方なくClick Imageアクティビティで「ファイル」という画像をクリックするように作りました。
しばらくうまく動いていたのですが、あるときから突然「Image not found」で動かなくなりました。

UiPathでExcel2016を操作するのに良い方法はありませんでしょうか?

こんにちは。

UiPathでExcelを操作するのは気持ち大変(面倒くさい)ですよね。
自分ではちゃんと設定したつもりなのだけど、どこか機嫌悪くてワークフローが動かないことはしばしばあります。

で、とりあえずなのですが、
Excel2016のタブ部分は、ユニークなセレクタを持っていますよ。これは数式タブのセレクタです。

また、[Send HotKey]も使用できます。
当方、Excelマクロで実施するようなコピペやマウス操作で行うテーブルのフィルタといった操作をUiPathのSend HotKeyで実装した経験があります。

@kaishii さまの UiPathスキルが不明なので、釈迦に説法でしたら恐縮ですが、
ExcelをUiPathで操作しようとして動かないのは、8割方セレクタの設定ミスです。
よくあるのはファイル名ですかね。
レコーディング機能を使って記録すると、セレクタにファイル名が含まれてしまうので最初は動作してもファイルが変わると動かないというのがあります。

wnd app=‘excel.exe’ cls=‘XLMAIN’ title=‘Book1 - Excel’ />

こんな感じで、Book1 っていうファイル名が入ったセレクタを見逃していてワークフローが急に動かなかったりしますね。

で、Excel2016の操作ですが、やはり [Send HotKey] と クリック操作が基本になるのではと思ってます。セキュリティ面を気にした上で、という前提付きにはなりますが、[Invoke VBA]という、Excel VBAを直接実行するアクティビティもあるので、どうしても UiPathで対応できない、という場合には考慮してもよいかもです。

yukinoさん

早々のご回答ありがとうございます。

まず、タブの部分ですがセレクタを持っていることがわかりました。私の認識違いでした。
それからセレクタのファイル名ですが、私も気をつけております。

せっかくなので、実現したいことを正確に書きますと、
『WEBシステムからダウンロードしたEXCELブックに名前をつけて保存する』
ということになります。WEBアプリでなくとも、単にサイトからのダウンロードでもいいかもしれません。
開いたExcelにパスとファイル名をしてして保存するということです。

①WEBアプリを操作してEXCELをダウンロードされるようにする。
②表示される黄色いバー「・・・・.xlsを開くか保存しますか?」で「ファイルを開く」をクリック
⇒これはclick imageでクリックしています。
③表示されたEXCELをattache window

ここまではうまくいきました。この次がいろいろ手を変えてもうまくいきません。

<方法1>
clickアクティビティで「ファイルー名前をつけて保存」を順にクリック
⇒結果
OSのタスクバー上で、EXCELのアイコンが黄色く点滅し、EXCELは反応しない

<方法2>
send hot keyで、「alt+f」「alt+a」を送信し、Excelのショートカットキーで操作する
⇒結果
EXCELは反応しない

<方法3>
click imageで、「ファイル」「名前をつけて保存」をクリック。
⇒結果
一時はうまく動いていたが、あるときから全く動かなくなった。

<方法1>でも<方法2>でもうまくいきそうな気がいたします。
以前作成したワークフローで、send hot keyを使って行挿入するうごきを作ったのですが、
それが突然動かなくなりました。attache windowすることで再び動くようになりました。

send hot keyにしろclick imageにしろ、動いていたものが突然動かなくなるのには
本当に困っております。本番化した後にこれが起きたら障害になってしまいますので。

yukinoさん

とりあえず、ダウンロード時にIEで表示される黄色いバー「・・・・.xlsを開くか保存しますか?」で、
直接名前をつけて保存する操作を行うことで、問題回避できました。

取り急ぎご連絡まで。

1 Like