質問

Word Interopを使用して、.NETからWord 2007ドキュメントを操作しています。主にフィールドで物事をしているように:

For Each f In d.Fields
    f.Select()
    //do stuff with fields here            
Next

これにより、ドキュメントの最後のフィールドが選択されます。

したがって、きちんとしたために、カーソルをに配置したいと思います。 終わり ドキュメント(または)の 始める 大丈夫だろう)。

答えのためにグーグルであまり投げかけることはありません...私が得ることができる最も近いものは、私たちが範囲やブックマークで自分自身を巻き込む必要があることを示唆しているようです。あります GoTo の方法 Document オブジェクトですが、どれもありません WdGoToItem それが提供するオプションは便利です。

ドキュメントの最後(または開始)にカーソルを送信する簡単な方法はありませんか?

編集

私の問題の一部は、最後のフィールドを選択したままにするのが嫌いだったということでした。今、私ができることに気づきました

f.Unlink

を削除します mergefield そして、そこにフィールドテキストを単純なテキストとして残してください。カーソルを再配置するかどうかにかかわらず、どちらがよりきれいですか

役に立ちましたか?

解決

@Alexander Kojevnikov:あなたが私を正しい軌道に乗せたので、あなたの助けに感謝します。しかし、ドキュメントではなく、.gotoを選択したオブジェクトに適用する必要があることがわかりました。のように:

    Dim what As Object = Word.WdGoToItem.wdGoToLine
    Dim which As Object = Word.WdGoToDirection.wdGoToLast

    //below line had no effect
    //d.GoTo(what, which, Nothing, Nothing)

    w.Selection.GoTo(what, which, Nothing, Nothing)

他のヒント

これがC#での見た目です:

object missing = Missing.Value;
object what = Word.WdGoToItem.wdGoToLine;
object which = Word.WdGoToDirection.wdGoToLast;
doc.GoTo(ref what, ref which, ref missing, ref missing);

VB.NETでは、オプションのパラメーターをサポートするため、さらに簡単になると思います。

私はあなたと同じ環境を使用しているかどうかはわかりませんが、 始める また 終わり ここにある文書のうち、私にとってうまくいくものがあります:

Private Sub moveCursorToStartOfDocument()
    w.Selection.HomeKey(WdUnits.wdStory, Nothing)
End Sub

Private Sub moveCursorToEndOfDocument()
    w.Selection.EndKey(WdUnits.wdStory, Nothing)
End Sub

Appliction object-Word.Applicationを使用してDelphiでユニットWord_tlbを使用しています

次のように:

aWordDoc.Application.Selection.EndKey(wdStory,wdMove);

通常、単語のドキュメントの終わりはです:

Selection.EndKey( WdUnits.wdStory, WdMovementType.wdMove)

使用するとき

Selection.GoTo(Word.WdGoToItem.wdGoToLine, Word.WdGoToDirection.wdGoToLast, Nothing, Nothing);
Selection.InsertFile('documnet.docx');

最後の行の前に新しいコンテンツが挿入されました。

実際のコードのアウトラインを把握する最も簡単な方法は、その特定のアクションに対して単語でマクロを記録することです。次に、VB、VB.NET、C#などのさまざまな構文に合わせて、生成されたコードを変更できます。

以下のコードスニペットは、VB.NETアプリケーションの使用法を示しています。

Imports wordNmSpace = Microsoft.Office.Interop.Word
' Create an object for the application instance
objWord = CreateObject("Word.Application")

' Create a reference of the selection object within Word
objSelection = objWord.Selection

' Now comes the part where you move selection position to the end of document
objSelection.endof(wordNmSpace.WdUnits.wdStory, wordNmSpace.WdMovementType.wdMove)

お役に立てれば。

C#WordアドインVSTOで現在のドキュメントの最後にあるカーソル位置を変更するには:

this.Application.ActiveDocument.Range(
this.Application.ActiveDocument.Content.End-1,
this.Application.ActiveDocument.Content.End-1).Select();

見る 方法:ドキュメントで範囲をプログラム的に定義および選択する

これを試して :

int lNumberOfPages = 
  _WordDoc.ComputeStatistics(Word.WdStatistic.wdStatisticPages, false);

WordApp.Selection.GoTo(Word.WdGoToItem.wdGoToPage,WordApp.WdGoToDirection.wdGoToLast, lNumberOfPages);

定義済みのブックマークを使用できます。

EndOfDoc oDoc.Bookmarks.Item("\endofdoc").Range

その他の事前定義されたブックマーク:

ActiveDocument.Bookmarks("\Para").Copy "currpara"

https://msdn.microsoft.com/en-us/vba/word-vba/articles/predefined-bookmarks

ネットオフィスの場合:

mydoc.Range(GlobalClass.mydoc.Content.End-1 , mydoc.Content.End - 1).Select();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top