Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


40 / 840 ←次へ | 前へ→

【825】Re:蛍光ペンの置き換えが表内で止まる
発言  マナ  - 17/8/9(水) 19:45 -

引用なし
パスワード
   ▼ぱたぱた さん:

解決後ですが、

1)今のコードを修正するなら、次の検索に移る前に
以下を実行すると問題は解決すると思います。
置換マクロではよく使われる手法です。

Selection.Collapse direction:=wdCollapseEnd

また、今のコードはマクロ実行前のカーソルの位置で結果がかわります。
最初にカーソルを文頭に移動させたほうがよいです。

Selection.HomeKey wdStory

2)Rangeオブジェクトを使用する場合でも
無限ループになる場合があります。

なので、同じように、
Rng.Collapse direction:=wdCollapseEnd

を追加しておいたほうが無難かもしれません。


3)色が違う蛍光ペンが連続してあると置換に失敗するそうです。

ht tp://ameblo.jp/gidgeerock/entry-11012321922.html

以上を踏まえて、わたしの場合はこんな感じにします。

Option Explicit

Sub test()
  Dim r As Range
  
  Set r = ActiveDocument.Range
  
  With r.Find
    .Format = True
    .Highlight = True
    Do While .Execute
      Do While r.HighlightColorIndex = wdUndefined
        r.MoveEnd Unit:=wdCharacter, Count:=-1
      Loop
      If r.HighlightColorIndex = wdBrightGreen Then
        r.HighlightColorIndex = wdTurquoise
      End If
      r.Collapse direction:=wdCollapseEnd
    Loop
  End With

End Sub

81 hits

【822】蛍光ペンの置き換えが表内で止まる ぱたぱた 17/7/31(月) 15:30 質問[未読]
【823】Re:蛍光ペンの置き換えが表内で止まる 亀マスター 17/8/1(火) 20:20 回答[未読]
【824】Re:蛍光ペンの置き換えが表内で止まる ぱたぱた 17/8/2(水) 12:33 お礼[未読]
【825】Re:蛍光ペンの置き換えが表内で止まる マナ 17/8/9(水) 19:45 発言[未読]

40 / 840 ←次へ | 前へ→
ページ:  ┃  記事番号:
199423
(SS)C-BOARD v3.8 is Free