10

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、フィールド テキストをプレーン テキストのままにします。カーソルの位置を変更するかどうかに関係なく、どちらがきれいですか

4

9 に答える 9

13

@Alexander Kojevnikov: 助けてくれてありがとう。ただし、.GoTo をドキュメントではなく、Word の選択オブジェクトに適用する必要があることがわかりました。次のように:

    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)
于 2009-10-20T08:45:16.530 に答える
8

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 ではさらに簡単になると思います。

于 2009-10-19T23:49:31.070 に答える
3

あなたと同じ環境を使用しているかどうかはわかりませんが、ドキュメントの最初または最後に移動するには、次のようにします。

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

Private Sub moveCursorToEndOfDocument()
    w.Selection.EndKey(WdUnits.wdStory, Nothing)
End Sub
于 2014-02-21T03:44:17.647 に答える
1

実際のコードの概要を把握する最も簡単な方法は、その特定のアクションのマクロを Word に記録することです。次に、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)

お役に立てれば。

于 2015-10-29T11:58:52.093 に答える