Excelのpivot作成

excel
studio

#1

ExcelにてPivot tableの作成をしたく、以下の処理をしています。
何とか実装には成功したものの、
原因不明の事象があり、原因の理解ができればと思っております。

実装している処理
エクセルで、表を選択し、新規ピボットテーブルを新規シートで作成する

原因不明の事象
studioで処理を走らさた際、新規ピボットテーブルが新規シートで作成されるのが目視できるが、
処理が終わって、該当エクセルファイルを開くと、新規ピボットテーブルのシートが無くなっている

処理の詳細
Excell Apprication Scopeで指定のエクセルを開き、
Send hotkey(Ctrl + A)で、シートを全選択してから
Clickアクティビティで、Excelのリボンの中のピボットテーブル作成を押す。

そのあとのピボットテーブル作成のポップアップウインドウをAttach Windowし、
Clickで新規シートで作成、OKを押す。

解決方法として、新規シート作成後にSend hotkey(Ctrl + S)を入れると、
問題なく新規シートが作成された状態になりました。

今までExcell Apprication Scopeを通じて、
エクセルファイルにデータの書き込み等を行った事が複数回ありますが
エクセルの保存機能を使わずに反映できています。

今後の為にも何が原因が理解したいのですが、何が原因なのでしょうか。


#2

[Send Hotkey] や[Click]による操作は、所詮「人間のキー/マウス操作を真似」するだけなので、人間の操作同様に「ファイル保存」操作をワークフロー上で(人間の操作代替として)明示する必要があるのでは、と思います。

で、[Write Cell/Range]はなぜ明示的に保存しなくてよいのか?という話なのですが、、、
[Excel Application Scope]の[Write Range]アクティビティには「変更はすぐ保存されます」という一文がありますので、そういう仕様なのでしょうね。

ちなみに、
[Excel Application Scope] の [AutoSave]プロパティをオフにしておくと、[Write Range]で書き込んだ変更はすぐに保存されません。
→替わりに [Save Workbook]アクティビティを使うと、ファイル保存するタイミングをワークフローの中で任意に指定できます。


#3

yukinoさん
ありがとうございます。

確かにExcel のWrite RangeやWrite Cellには、
「変更はすぐに保存されます。」と記載がありますね。

クリックアクティビティでエクセルを操作していただけなので、
変更がすぐに保存されなかったという事で納得できました。

ありがとうございました。