Word VBA質問箱 IV

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

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


39 / 837 ←次へ | 前へ→

【823】Re:蛍光ペンの置き換えが表内で止まる
回答  亀マスター  - 17/8/1(火) 20:20 -

引用なし
パスワード
   Findを使う際にSelectionを使ったため、1個目の置換後に
カーソル位置(Selection)が置換した範囲の左側に移り、
そこで次の検索を実行するとまた同じものがヒットして・・・
という感じで無限ループになったのだと思われます。

そこで、SelectionではなくRangeオブジェクトのFindを
使うことで解決できると思います。

Sub コード例()

Dim Rng As Range

'Rngの位置を文書の先頭にRangeにセット
Set Rng = ActiveDocument.Range(0, 0)

With Rng.Find
  .ClearFormatting
  .Format = True
  .Highlight = True
  .Text = ""
  Do
    If Not .Execute Then Exit Do
    'テーブル以外だけを対象(テーブル内も置換したいならここのIfは不要)
    If Not Rng.Information(wdWithInTable) Then
      If Rng.HighlightColorIndex = wdBrightGreen Then
        Rng.HighlightColorIndex = wdTurquoise
      End If
    End If
  Loop
End With

End Sub

83 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 発言[未読]

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