【Excel】このエラーは何が起こっているのでしょうか?

[WriteCell]の処理が【低い確率】で失敗する現象が発生しています。

”クライアントから切断された”と表示されていますが、
何が起きて処理が止まるのか理解できていません。

御教授願います!

<処理内容>
DataTableに保存されているデータをExcelに書き込んでいます。

1 Like

Webで調べたところ、Excelマクロでも同じ現象が発生している様ですね。
ただ、根本原因の説明や対処方法の記載が無く、困っております、、、。

@nk_tecroom さん

Excel Macroの質問で↓のような記事を見つけました。(外部リンク)
https://dobon.net/vb/bbs/log3-52/30892.html

ちゃんと理解しているわけではないですが、write 処理をする前にExcel インスタンスが終了してる為かなぁと想像してます。
消極的な対応策としては、以下の案が思いつきます。

  1. Excel application scope を出る前に delayを入れる
  2. Try catch等で、失敗した場合のRetry 処理を入れる。

これで解決するかどうかは不明ですが、安定性は増すと思います。

共有まで。

以下、パスから引用
エラーコード 0x80010108 (RPC_E_DISCONNECTED) は
『アプリ側では参照を保持しているが、その参照は既に COM オブジェクト側から切断されている』
という状態を意味します。

このエラーになった理由は、先に Workbooks.Close が実施されることで、
全てのブックが閉じられているのに、その後で FileB のブックすなわち
xlBook を操作しようとしたことが原因です。
xlBook 以外の変数を MRComObject してあるかどうかは無関係です。

1 Like

念のためですが。
WriteCell → WriteRange
とか。

@Jumbo さん

反応が遅くなりまして、すみません。
コメント頂き、ありがとうございます。

Excelへのデータ設定の速度を遅くして、本エラーの発生率は下がりましたが
完全にゼロにはなっていない状況です。
ご紹介頂いたリンクも確認させて頂きます。

@kaishii さん

コメントありがとうございます。
参考にさせて頂きます。

Please refer to the link like below, although is write in Chinese.

Hi @etss1016

I have interest in your answer, the Chinese post says it will be fixed if I change Excel option “excel中的com加载项” but it seems that is just for PDF. Do you know why it works??

Rgds,
J,

@nk_tecroom

@etss1016 さんの中国語のポスト見る限り、Excel オプションから解決策があるそうです。
中国語ですが、キャプチャ見れば想像つくはずなので、試して、結果を共有してもらえるとうれしいです。
(Excel Option >> COM addinからPDF creator com addin 外せば直るという話らしいです。)

1 Like

もし、PDFに関する以外の他のAddinでエラーを行っている。デフォルト以外のPlugInを全部はずしてやってください。

1 Like

@etss1016

回答ありがとうございます。PDFとは限らないけどAddinが原因で、エラーが起きてる可能性が高い、ってことですね。理解しまいた。谢谢啊!!

J,