C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■102828 / 1階層)  エクセルのセルの画像化時のエラーについて
□投稿者/ 魔界の仮面弁士 (3745回)-(2024/01/12(Fri) 17:36:54)
No102826 (Massa さん) に返信
> Excelのセル範囲を一定間隔でずらしながら,画像として出力するプログラムをC#で作成しています.
ReleaseComObject 関連の解放処理がゴッソリ抜け落ちてますね…。

C# からアウトプロセスで呼び出しているものなので、解放漏れがあると
Quit() 後も Excel のインスタンスが非表示で残り続ける要因に繋がりますよ。


> range.CopPictureのところでエラーになるときとならないときがあり,不安定なってしまいます.
スペルミスに目をつぶるとしても、提示されたコードは
 「{」が 11 個、
 「}」が 9 個
という非対称なものであり、そもそもコンパイルが通りそうにありません…。


> エラーメッセージは「range クラスの copypicture メソッドが失敗しました。」と表示されます.
クリップボードが使用中などで処理できなかった場合に、そのようなエラーが発生することがあります。
事象としては、Excel VBA だけで実施した場合にも起きえます。

他のアプリがクリップボード操作している場合や、PC のパフォーマンスが落ちている場合、
あるいは、クリップボードを連続して操作した場合などに起きやすいという説もありますが、
根本的な対策は無いので、遅延処理やリトライなどを独自に組み込んで対処している方が多いようです。

https://answers.microsoft.com/ja-jp/msoffice/forum/all/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%A8%E3%83%A9/63090c23-3e6c-4855-80c5-d9e8684972c8
https://social.msdn.microsoft.com/Forums/ja-JP/35487cfb-26a1-465a-bc5e-a331d98f7a4e/123041237225945310341236712384123731235612305excel2016?forum=vbajp
https://vba-create.jp/vba-method-copypicture/


> 解決法についてご教示いただければ幸いです.
失敗した場合は、いったん現状の Click イベントを return で一時的に抜けて、
残りの処理を、別イベント (たとえば Application.Idle 時など)で実施するようリトライ処理を組み込んでみるとか。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←エクセルのセルの画像化時のエラーについて /Massa →Re[2]: エクセルのセルの画像化時のエラーについて /Massa
 
上記関連ツリー

エクセルのセルの画像化時のエラーについて / Massa (24/01/12(Fri) 15:21) #102826
エクセルのセルの画像化時のエラーについて / 魔界の仮面弁士 (24/01/12(Fri) 17:36) #102828 ←Now
│└ Re[2]: エクセルのセルの画像化時のエラーについて / Massa (24/01/12(Fri) 23:26) #102830
│  └ Re[3]: エクセルのセルの画像化時のエラーについて / とっちゃん (24/01/13(Sat) 02:51) #102831
│    └ Re[4]: エクセルのセルの画像化時のエラーについて / Massa (24/01/14(Sun) 08:18) #102834 解決済み
Re[1]: エクセルのセルの画像化時のエラーについて / とっちゃん (24/01/12(Fri) 17:17) #102827
  └ Re[2]: エクセルのセルの画像化時のエラーについて / Massa (24/01/12(Fri) 23:15) #102829

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信