Write Cell 後 Save Workbookを設定 書き込んだデータがExcelに保存されない


#1

元となるExcelのテンプレートファイルがあって、それに対して、別のブックで作ったデータテーブルにあるデータをFor each row でループさせながらWrite Cellさせます。ループさせているのは、ファイルをデータテーブルのレコード分だけ作るためです。テンプレートファイルから、子ファイルがレコード分だけ複数生成されます。Save Workbookには、そこでファイル名を与えることが仕様上できないので、Type IntoでExcelの”名前をつけて保存”機能を使って、変数で名前を与えて各ファイルを保存させます。

実行させると、1個1個のエクセルファイルに問題なくWrite Cell されているようで、その書き込む要素を見ることができます。保存も問題なくできて、ファイルが複数、所定のフォルダに生成されます。ところが、ファイルを開けると、中身が書き込まれていないのです!

Write Cell の後にはSave Workbookを置いているので、書き込まれた内容は保存されている
はずだと思ったのですが、そうはなっていません。
以下にStudio上の処理を添付いたします。

もし何かおわかりになることありましたら、お手数とは存じますが、
ご指摘いただけますとありがたいです。よろしくお願いいたします。

※ループの中で、”処理”をInvokeしているので、添付しているフローは呼び出されている”処理”の部分だけです。


#2

optionのAutoSveにチェックは入ってますか??


#3

早速のご回答ありがとうございます。
Excel Application Scopeの Auto Saveには、当初からフラグを立てております。チェックが入っている状態です。


#4

こんにちは

Open Application アクティビティとEXCEL Application Scopeアクティビティで同じファイルをオープンしていないでしょうか?
もし同一ファイルをオープンしているのであれば、EXECL Applicarion Scopeはすでにオープンされているファイルに書き込みを行う操作する場合、別ファイルとして出力します。そのため例えばプロジェクトルート等にファイルが出力されているのではないかと思います。
本ケースではOpen Applicationを使わずに、単純にExcel Application Scopeでファイルオープン→書き込み操作を行い、書き込み後の出力ファイルをコピーする(あるいは状況によってはあらかじめファイルをコピーしておき、それに対してExcel Application Scopeで操作する)方がよいかと思います。
ちなみにExcel Application ScopeのAutoSaveですが、セルへの書き込み回数が多い場合はパフォーマンスに影響が出る場合があるので、最後にSave Workbookでの一括書き込みで処理上問題なければ、AutoSaveはOFFの方がよいかもしれません。


#5

Excelテンプレファイルをコピーして編集・保存するときに私がよくやるミスなんですが、Excelファイルが読み込み専用で開かれてませんか?これで開かれてると、一見セルに正しく値を入力しているように見えても、上書き保存されません。office2010であれば名前を付けて保存>ツール>全般オプションでチェックボックスがあります。 Studio 2018.2.3です。


#6

Yoichi 様

ありがとうございます。ご指摘の通りでした。
名前を変えて保存させるために、Open Applicationを使っていました。
そのうえで、Excel Appication Scopeを使わなくてはいけないという思い込みがありました。
分離したら問題なくできました。
親ファイルから子ファイルが出来ますが、数が可変なので、どのように対処すればよいか
試行錯誤していました。今回の件で、気をつけなければならない仕様がわかったので助かりました。

Save Workbookについてもご指摘いただきましてありがたいです。
パフォーマンスの問題は重要です。