1

C#でMSOfficeWordアドインを作成しています。ドキュメントを操作しているときに、ドキュメントからいくつかの情報を取得する必要があります。

特定Rangeのドキュメントを取得して保存します。

たとえば、テキストでは:

Text1 text2 text3 text4

Range「text3」を保存します。そのStart位置=13、End位置= 17(私が理解しているように、文字数)。

この単語の前のテキストを変更すると、次のようになります。

Text1 NEW TE XT te xt2 text3 text4

その位置はRange同じままになります。テキストを選択しようとすると、間違ったテキスト範囲が表示されます。

Rangeドキュメントの編集後にオブジェクトのデータを更新する方法はありますか?

4

1 に答える 1

0

ドキュメントには次のように記載されています。

各Rangeオブジェクトは、開始文字と終了文字の位置によって定義されます

だからあなたが仮定するもの:

「text3」の範囲を保存します。その開始位置=13、終了位置= 17(私が理解しているように、文字数)。

... 正しい。

その範囲の位置は同じままになります。テキストを選択しようとすると、間違ったテキスト範囲が表示されます。

これは意図された動作であると思います。ドキュメントに記載されている範囲と非常によく一致していると思います:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range (v = office.14).aspx

ドキュメントを編集した後にRangeオブジェクトのデータを更新する方法はありますか?

私の知る限り、これは不可能であり、私が見る限り、ドキュメントにはこれも可能であるとは記載されていません。

Word最初は、そのような機能をカプセル化したオブジェクトが存在するのではないかと思いましたWords、ドキュメントのコレクションには、Rangesそれぞれ1つの単語を表すものしか含まれていないことがわかりました。

于 2012-10-08T18:23:54.253 に答える