「セルに書き込み」でExcelファイル(表)が破損してしまう

当方の環境の問題かそれ以外の問題か判断し難く、力をお貸し願いたいと思います。

xlsxファイルに以下の表を用意します。
項目1にメモを追加し、文言を hoge と変更します(書体は元のまま)。
XL表
(以下のロボ実行で破損する可能性があるので、xlsxファイルをコピーしておいてください)

システム-ファイル-ワークブック-セルに書き込む(み)アクティビティで上記ファイルの E4セルに “○”(全角マル1文字)を書き込みます。

すると、以下の例外が発生し、開いてみると表が破損しています。
System.Collections.Generic.KeyNotFoundException: 指定されたキーはディレクトリ内に存在しませんでした。
XL破損表
表が破損するだけならいい(よくない)のですが、ファイルが開けなくなってしまうこともあり得るのかなと憂慮しています。

元々の処理としては、Excelファイルにロボで連続処理させる一覧を用意しておき、終わった行に ○ を入れていこうとしていました。
(Studioバージョン 18.3。上記の再現で使用したバージョンは2019.10.3)

よろしくお願いいたします。

アプリの統合 ⇒ Excel ⇒ 書き込みアクティビティではいかがでしょう?

こんにちは

手元の環境( 2019.10.2CE +Excel Activity 2.7.2 + EXCEL2013)では再現しませんでした
再現するファイルやワークフローを共有いただくと、皆さんで検証できるかと思いますのでご検討いただくのが良いかもしれません。

1 Like

@HANACCHI
返信ありがとうございます。
>アプリの統合 ⇒ Excel ⇒ 書き込みアクティビティではいかがでしょう?
これですとExcelアプリケーションスコープでxlsxファイルを開いたままにしないといけないと思っています。
アイコン化しておけば見た目は邪魔にはなりませんが、例外によっては開いたファイルが残ってしまうなどの弊害が考えられるため、マルを書き込むとき以外はxlsxファイルをロボで保持したくないと考えています。
(処理一覧はロボの初期処理で全てデータテーブルに読み込んでいます)

Excelアプリケーションスコープのそれと、ファイルのそれとでは、内部処理が若干違うので、
まずはExcelアプリケーションスコープで試してみて、ロジック的に正しいかを検証してもよろしいかと思いました。

@Yoichi
返信ありがとうございます。
Excel Activity 2.7.2 + EXCEL1912(変なバージョン番号ですが、Office365では バージョン1912(ビルド12325.20298)と書かれています)
検証よろしくお願いいたします。
検証_セルに書き込む.zip (34.6 キロバイト)

@HANACCHI
>Excelアプリケーションスコープのそれと、ファイルのそれとでは、内部処理が若干違う
それは理解しております。Office標準機能を使用するかそれ以外の方法でXlsxファイルを更新するかですよね。
この、それ以外の方法でxlsxファイルを更新するアクティビティにもしバグがあるとすると、「システム-ファイル-ワークブック」下にあるアクティビティ全てが信用するに値しないものとなります。

更に、破損する場合もあるししない場合もあるのが厄介とも思っています。既に作成済みのロボでテストでは問題ないのに本番で破損が起きると。

これがバグなら影響は小さくありません。

ありがとうございます。

手元の環境でも再現しました。環境要因ではなさそうですね...
もう少し再現条件など見てみたいと思いますが、取り急ぎ。

1 Like

@Yoichi
ありがとうございます。
破損しないようにする1つの手段は メモを除去することでした。
しかし、メモを追加しなければ破損しないのか、たまたま今回の場合はメモ除去で破損しなくなっただけなのか、このアクティビティのソース(やその参照部分)を見れる人でないとわからないので、この先どうしようか思案中です。
(プログラムにバグは付き物ということも承知しております)

A1セルに指定しているコメントを削除すると正しく動作するようです。

@gha
ありがとうございます。
私が書いている「メモ」は、以前のExcelでは「コメント」と呼んでいました。
しかし、Office365 のほぼ最新と思われるExcelの右クリックメニューでは「新しいメモ(N)」と言い方が変わり、別にある「新しいコメント(M)」では以前とは別タイプのコメントが追加されるようになりました。

まあ、全て Microsoftが悪いんですけど、そういうことですので紛らわしくてすみません。

O365 ProPlus(Ver1808)では、「メモ」はまだ存在していませんね。いずれ私もその問題にあたるかもしれませんね。その時は、 Legacy32さんの書き込みを思い出しますね。

有益な情報、ありがとうございました!

@HANACCHI
それは、O365 ProPlus(Ver1808)のExcelや @Yoichi さんの Excel2013でコメントを追加したxlsxファイルでは例外は発生しないということになるのでしょうか。
カスタマーサポートにインシデント報告を上げる事項なのかも判断しかねています。

再現しました。というよりは、もっとひどい結果かもしれません。

image

このアクティビティ設定で、
ソース: セルに書き込み

メッセージ: ルート要素が見つかりません。

例外の種類: System.Xml.XmlException

IncludeExceptionDetailInFaults=true により作成された可能性のある ExceptionDetail の値:
System.Xml.XmlException: ルート要素が見つかりません。

ですって…

EXCELアプリケーションSCOPEの方だと、コメントあり、なし関係なく書き込めたのですが。。。

1 Like

こんにちは

EXCEL2013環境ですが、単純にセルにいくつか数字を入力し、A1セルにコメントを追加したものをxlsx形式で保存。
これをWrokbook以下のWrite Cellで書き込みましたが。特段問題なく処理が完了しました。

  • Workbook以下のアクティビティはNPOIやClosedXMLといったライブラリを使用していますがこれらのO365(Excel2016? 2019?)への対応が追い付いていない
  • UiPathのアクティビティ実装部分のバグ
  • EXCEL側の出力が標準から逸脱している

等が考えられますが、再現性ありそうなのでUiPath側にbug report上げたほうが良いかもしれません。

1 Like

@HANACCHI @Yoichi
検証ありがとうございます。
まずは再現性のあるバグである可能性を確認できました。ありがとうございます。
当方UiPath使用者(社)でもありリセラーでもあるので、今後の対応を考えます。
(まずは上司への報告と、カスタマーサポートにインシデント報告を上げる(親会社経由になるかも)予定。)

経過を投稿するかもしれませんので、クローズしないでおきます。

1 Like

なるほど!よろしくお願いしますね!

【経過報告】
2020/2/7 Webのカスタマーサポートにインシデントとして報告。即時、自動返信メール届く。
上記同日にサポート担当者よりメールにて追加資料を求められ返送。担当者より受け取りメール。

2020/2/14 サポートより以下のメール(抜粋)

本事象につきまして、原因と回避策についてご連絡致します。
ExcelApplicationScopeを使用しないExcelのアクティビティは、
Excelファイルを解析して処理をしていますが、コメントが追加されることで、
Excelの構造が変わり、アクティビティがその構造に対応できていないため、
この事象が発生しております。

誠に申し訳ございませんが、現時点での回避策として、
Excelのコメントを消す方法か、ExcelApplicationScopeを使用した
アクティビティを使用する方法でご対応いただけますと幸いです。

以上です。
(いろいろ思うことはありますが、とりあえず現時点の報告まで)

3 Likes