入力としていくつかのドキュメントを受け取り、それらに対して何らかの処理を行い、最後にいくつかの新しいドキュメントを作成するプロジェクトがあります。現在、ある Word ドキュメントから別の Word ドキュメントにコンテンツを貼り付ける際に問題が発生しています。次のコード スニペットが関連しているようです。
Set refOrigin = FindReference(OriginDoc)
Set refDest = PasteDoc.Range(PasteDoc.Content.Start, PasteDoc.Content.End)
refDest.Collapse wdCollapseEnd
refOrigin.Copy
refDest.Paste
このコードを実行すると、コードの貼り付け行で実行時エラー 4198 が発生することがあります。Command Failed
しかし、デバッガーに入ると、refDest と refOrigin の両方が有効な範囲であることがわかります。さらに、コードを 1 行ずつ実行すると、機能します。ただし、失敗したインスタンスでは、埋め込まれた Word ドキュメントが既に挿入されていることがわかります。
私は問題についていくつかの調査を行いましたが、クリップボードが時々それに追いつくためにコードが高速に実行されるというある種の問題があると信じています。ネットワーク ドライブ上のドキュメントからマクロを実行すると、問題なく実行されるため、これは理にかなっています。
で待機コマンドを簡単に追加できると思っていApplication.Wait
ましたが、Word 2010 ではこのコマンドがサポートされていないことがわかりました。エクセルのみです。
この問題の根本、考えられる解決策、または Word 2010 に待機コマンドを与える方法について、誰かアイデアをお持ちですか? ありがとう。