EXCEL『OLEの操作を完了させる』には。無限ループを乗り越えた一例


『別のプログラムでのOLEの操作が完了するまで待機します』

せっかくのエクセルを保存しようとボタンを押したら、軽快な音とともにポップアップ画面がでてきて、押せども待てども一向に終わる気配がなく、無限ループの原因不明で泣き寝入り。

そんな罠にかかってしまったので、なぜこんなことが起きているのか、そもそもOLEとは何か、用語がまた難しいんですよね・・・

どういうことか、自分のファイルに限って、わかるように調べてみることにしました。

英語では”Microsoft Excel is waiting for another application to complete an OLE action”

日本語を検索するより、悩んだら英語です

検索すると、マイクロソフトのコミュニティで以下のページがあります

See this post if you receive Microsoft Excel is waiting for another application to complete an OLE action. Object Linking and Embedding allows Office apps to in...

かなりまとまっています

と思ったのですが・・・ここにかいてあるのは

  • エクセルのOptionにいき、詳細設定の『DDEを使用する他のアプリケーションを無視する』をチェックする

調べてみるとDDEとは『動的データ交換』で、例えば、エクセルの表をワードに貼っている場合、エクセルの表が更新されたら、ワードにあるその表も更新されるというもの

DDEとOLEの関係は、OLEがDDEよりも上位。つまり、アプリケーション間の通信としては、OLEのほうがDDEよりいろいろなことができるし、OLEの下位レイヤーはDDEで構成されている(そうな)ので、DDEを切ってしまえばアプリケーション間の通信がなくなるから、他のアプリケーションの作業を待つ必要がエクセルにはなくなりますよ、といいたいのだろう

いや、そんな機能はまるで使っていない、作業してないエクセルファイルなんでが。。。すくなくとも私はそういう作業をしていないので、今は関係ないと判断

  • エクセルのOptionにいき、アドインでエクセルのアドインを使えないようにする

統計を使う業務をやっている人は、ソルバーやら分析ツールを使うことはあるので、オンにしている人もいるのだろうけど、そんな機能とは無縁でもあるので、これも関係なし

  • エクセルのワークブックをEmailに添付するオプションを使っている

いや、全く使ってないです

ということで、全く関係ない!原因は別にある様子。。。

最新のアップデートがされているか確認

となると、疑わしいのは、最新のアップデートがされていない、などのこちら側の不手際の可能性もあります。と思ってアップデートがちゃんとされているか確認したところ、されている。。。

ネットサーフィンをすると、PDFなどで問題が起きた場合は、最新版でないことが原因の可能性があるようですね。ただ、残念ながら私は違いました。

問題となっているエクセルシートをよく調査

そもそも、このエクセル、1シートに74万行を使っている上に、列数もあり、ファイルも計算はVBAでやって吐き出した数字の結果があるだけなので、純粋にデータの多さだけで、90Mもあるわけですが、それが原因なのかとも思いました。

ただ、それと、上の記載した『OLEオブジェクト』(例えば、ワードに入れられたエクセル表)は違います。仮に、VBAなどで処理が重い、タイムアウトになっているなどが原因なら、保存するときに、別のアプリケーションの作業は関係ないはずです。

ですので、もしかしたら、このエクセル内にOLEオブジェクトが何らかの形で残っているのではないかと疑ってみました。特にインプットシートを。。

つまり、このエクセルファイルの素データを作成している際に、違うアプリケーションで作られたものがこのファイル内に入ってしまっているのではないか

そしたら・・・あった。。。

なんか、透明かつ変なリンクもある形で、図形のデータがある。。。

もともとの作成者に話を聞いてみたら、ホームページを見ながらあれこれ作っていたとのことで、いろいろコピペしたりして、他のアプリケーションデータをエクセルシート内に残していたんでしょうね。。。

その消し忘れだったんでしょう、これは。。

これを消した後は、今はファイルの重さが100M超えてますが、保存するときに『別のプログラムでOLEの操作が完了するまで待機をつづけます』は、今のところ無縁です。

もし、エクセルのシート内にそのような外部とリンクするようなものに心当たりがあったら、それを疑ってみると解決することがあるかもしれません。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする