わかりました。MS Access から (テンプレートに基づいて) Word 文書を作成し、OLEFormat オブジェクトを使用していくつかのグラフを更新しています。Excel の新しいインスタンスを作成するオブジェクトをアクティブ化し、編集を行ったら、その Excel のインスタンスを次のコマンドで閉じます。
wdChart.ChartData.Workbook.Application.Quit
Excel の他のインスタンスが実行されていない場合、これは正常に機能します。ただし、OLEFormat.Activate が発生したときに Excel の開いているインスタンスがある場合、Excel の新しいインスタンスは作成されませんが、開いている Excel の同じインスタンスでグラフ スプレッドシートが開きます。そのため、.Application.Quit コマンドを実行すると、そのインスタンスで開いているすべてのブックが閉じられ、ブックを保存するように求められます。この時点で、次のような Word メッセージが表示されます。
グラフを挿入するには、まず開いているダイアログ ボックスをすべて閉じるか、Microsoft Excel の編集モードをキャンセルする必要があります
私のコードは次のように失敗します:
オブジェクト 'ChartData' のメソッド 'Activate' が失敗しました
これらのエラーは、私のコードが複数のチャートを順番に編集しているという事実に関係していると思います。Word ダイアログがポップアップしても、私のコードはまだ実行中か何かを試みています。
OLEFormat.Activate に Excel の独自のインスタンスを開くように強制する方法があれば、これをすべて解決できると思います。これは可能ですか?