2012-05-08 15 views
0

データベースからWord文書に情報を挿入するアプリケーションがあります。Delphi 2010:Word 2010文書のテキストを読み取る

私は、Word文書の情報を後で変更できるよう要求しました。

これを達成するために、ドキュメント内のセクションを見つけるためにブックマークを読むことができるアプリケーションを起動するマクロを書きました。

特定のブックマークに設定されているテキストを読むことができません。

私は次のコードを使用したブックマークのテキストを設定することができます。

bookmark := 'PersonName'; 
R := WordDoc.Bookmarks.Item(bookmark).Range; 
R.Text := "Joe Bloggs"; 

の問題の一部は、ブックマークがテキストのブロックとして設定されていないことである - これはテキストが設定されている場合ことを保証しますブックマークは持続します。つまり、少なくとも2回目の実行で範囲を設定できます。私は出発点を設定したブックマークを使用している場合

R.text 

または

WordApp.Selection.Text 

のいずれかのために戻って任意の結果を得るための方法を見つけることができない可能性があるとして

は試してみてください。

提案がありますか?

2回目の実行時にテキストを挿入すると正常に動作します。

答えて

2

は、テキストを設定した後、ブックマークをreadding試してみてください。

Bookmark := 'PersonName'; 
R := WordDoc.Bookmarks.Item(Bookmark).Range; 
R.Text := 'Joe Bloggs'; 
WordDoc.Bookmarks.Add(Bookmark, R); 

See here for more info

+0

ブックマークがR.Textは空の文字列を返す単一charとして設定されているため。ブックマークがいくつかのダミーテキストをカバーするように拡張されている場合、ブックマークは挿入時に消去されます... –