web-dev-qa-db-ja.com

ドキュメントの終わりまでループする

ドキュメントの3行ごとに選択し、テキストを太字、下線付き、および青色にフォーマットする必要があります。私はすでにこのためのコードを持っていますが、設定された回数だけループする必要があります。

問題は、私が見つけたすべてのループチュートリアルでは、変数または状態を使用して、何らかの条件が満たされるまでこれを実行することです。その条件を「ドキュメントの下部に到達する」ように設定するにはどうすればよいですか?

私が設定したコードは以下のとおりです。括弧で囲まれた行は、私が助けを必要としているものです。

Selection.HomeKey Unit:=wdStory

[Do the following code until the end of the document]

        Selection.HomeKey Unit:=wdLine
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        With Selection.Font
            .Bold = wdToggle
            .Color = 12611584
            .Underline = wdUnderlineSingle
        End With

        Selection.MoveDown Unit:=wdLine, Count:=3

[end of loop]

非常に基本的な質問です。私はExcelでこれらのタイプのループを設定することに精通していますが、Wordではそれを理解できません。時間を割いてお答えいただきありがとうございます。

2
Jamiho

これはうまくいくはずです

Dim lastRow As Long
lastRow = ActiveDocument.BuiltInDocumentProperties("Number Of Lines")
MsgBox lastRow

BuiltInDocumentProperties KB

したがって、このようなものは機能し、Excelと同じタイプのforループになります-

Sub CountLines()

Dim lastRow As Long
Dim i As Long
lastRow = ActiveDocument.BuiltInDocumentProperties("Number Of Lines")
For i = 1 To lastRow
    If i Mod 3 = 0 Then
        'Do Stuff
    End If
Next

End Sub

またはもっと徹底するために-

Sub CountLines()

    Dim lastRow As Long
    Dim i As Long
    lastRow = ActiveDocument.BuiltInDocumentProperties("Number Of Lines")
    For i = 1 To lastRow
        If i Mod 3 = 0 Then
            ActiveDocument.Paragraphs(i).Range.Font.Bold = True
            'Do other stuff
        End If
    Next

End Sub
2
Raystafarian