Delphi で作業している現在のアプリケーションで、興味深い問題に遭遇しました。問題は、特定の状況では、ドキュメントが完成する前に TWordApplication の ActiveDocument が変更される可能性があることです。
以下のように初期化された TWordApplication (WordApp) と TWordDocument (WordDoc) があります。
WordApp.Connect;
WordApp.Documents.Add(Template, EmptyParam, EmptyParam, EmptyParam);
WordApp.ChangeFileOpenDirectory(jdir);
WordDoc.ConnectTo(WordApp.ActiveDocument);
ほとんどの場合、いくつかのブックマークを更新するか、多数のテンプレートからテキストを挿入します。
Range := '';
convert := msoFalse;
LinkFile := msoFalse;
Attach := msoFalse;
WordApp.Selection.InsertFile(Template, Range, Convert, LinkFIle, Attach);
1 つのワークフローでは、ドキュメントの作成が 2 番目のドキュメントの作成によって中断されます。保存後にこのドキュメントを閉じないと、元のドキュメントからフォーカスが「奪われ」ます。ユーザーが 2 番目のドキュメントを閉じることを覚えておく必要がないのは正当なことだと思います。
私がやりたいのは、WordApp のフォーカスをWordDocに切り替えるか、代わりに WordDoc を InsertFile に直接使用することですが、これはオプションではないようです。
(最初のドキュメントを作成する前に2 番目のドキュメントに必要なデータを照合する 3 番目のオプションがありますが、それにはアプリケーション ロジックの変更が必要になります。)
何か助けはありますか?