現象

Excel 2010 において、以下の条件を満たした状態で Workbooks.Open メソッドを実行すると、エラー番号 1004 の「アプリケーション定義またはオブジェクト定義のエラーです。」といったエラーが発生することがあります。

  • Workbooks.Open メソッドで開こうとしているファイルが .xls 形式

  • Workbooks.Open メソッド実行前に、セルのコピー等、クリップボードに関する処理を含むループ処理を連続で行う

  • Workbooks.Open メソッド実行前に DoEvents 関数の呼び出しが存在しない

  • クリップボードを監視し、データが変わった時にそのデータを取得する外部プログラムが存在する


原因

Excel 2010 ではクリップボードへのデータ格納の際、遅延レンダリングを行っています。
そのため、外部プログラムからクリップボード データへの参照が行われた場合に、クリップボードへデータを設定することを要求するウィンドウ メッセージを受け取ります。

しかし、Workbooks.Open メソッド実行前にループでクリップボードに関する処理を行うものの、そのウィンドウ メッセージを処理していない場合、Workbooks.Open メソッドの処理中に予期しないタイミングでクリップボードの処理が割り込むことがあります。

この割り込みタイミングによっては、Excel 2010 で想定しない状態となり、Workbooks.Open メソッドが失敗します。

回避策

Workbooks.Open メソッドの実行前に DoEvents 関数を実行するか、もしくは Workbooks.Open メソッドの実行を再試行します。

状況

マイクロソフトでは、この問題について現在調査中です。詳細については、わかりしだいこの資料に掲載する予定です。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

翻訳品質にどの程度満足していますか?

どのような要因がお客様の操作性に影響しましたか?

その他にご意見はありますか?(省略可能)

フィードバックをお送りいただきありがとうございます!

×