4

To Do リストの行を強調表示して、現在どのステップにいるかを確認するために使用するマクロがあります。とてもシンプルです。現在の行の強調表示を解除し、次の行を強調表示します。

Sub Highlight_Next_Row_Down()
    Selection.EndKey Unit:=wdLine
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
    Selection.Range.HighlightColorIndex = wdNoHighlight
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.EndKey Unit:=wdLine
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
    Selection.Range.HighlightColorIndex = wdYellow
End Sub

ここで、ドキュメントの最後の行にいるときに現在の行の強調表示を解除したいのです。これを行うには、最初に最後の行かどうかをチェックする if ステートメントを全体 (sub ステートメントを除く) に挿入します。しかし、行が最終行かどうかを確認する方法がわかりません。私はグーグルで検索しましたが、何も見つかりませんでした。

同様に、「Highlight_Next_Row_Up」があり、一番上の行に到達したときに同じことを行う方法を知りたいです。

助けてくれてありがとう

4

2 に答える 2

3

これがあなたが必要とする正確なロジックであるかどうかはわかりませんが、このコードは、ドキュメントの最後の行にいるかどうかを確認する可能な方法の 1 つを示しています。

Sub Highlight_Next_Row_Down()
    Selection.EndKey Unit:=wdLine
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
    'here check if this is the end
    If Selection.End = ActiveDocument.Bookmarks("\EndOfDoc").Range.End Then
        'just unhighlight
        Selection.Range.HighlightColorIndex = wdNoHighlight
    Else
        'your code here
        Selection.Range.HighlightColorIndex = wdNoHighlight
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.EndKey Unit:=wdLine
        Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
        Selection.Range.HighlightColorIndex = wdYellow
    End If
End Sub

end of document追加の空の段落は、TEXT の最終行の下に移動することに注意してください。

于 2013-05-14T21:37:28.760 に答える
0

もう 1 つの方法は、変数を返す MoveDown メソッドの機能を利用することです。代わりに:

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

あなたが書く:

c = Selection.MoveDown(wdLine,1) ,

その場合、変数 c は、選択範囲が実際に移動する単位数に等しい値を想定します。そのため、選択範囲がテキストの本文にある限り、1 行下に移動し、c = 1 になります。一方、テキストの最後では、選択範囲は別の行に移動できないため、c = 0 になります。より単純な制御条件を設定する方法:

c = 0 の場合...

c = 0 まで行う...

于 2014-10-26T05:16:38.330 に答える