0

VBAWordを使用して検索/置換したいとします。「ページ」という単語を「ページ(タイトルは太字にする必要があります)」に置き換えたいのですが、前の単語が「次の単語に続く」でない場合にのみこれを実行したいと思います。

単語を見つけて、キーコマンドを使用してctrl + shift +左矢印を使用しました。これらが「次へ続く」の場合は何もしません。それ以外の場合は、「ページ」を「ページ」に置き換えます(タイトルは太字にする必要があります)。

   Sub SpellingSuggestionPage()

Dim wrd As Range
Dim srchText As String, avdText As String, replWord As String
Dim ar() As String
Dim ignoreWord As Boolean

srchText = "page"
avdText = "next"
replWord = "page (title needs bolded)"

ar = Split(avdText, " ")

For Each wrd In ActiveDocument.Words

    ignoreWord = False

    If wrd = srchText Then

        If wrd.Previous(Unit:=wdWord, Count:=1).Text = avdText Or wrd.Previous(Unit:=wdWord, Count:=1).Bold Then
              ignoreWord = True
        End If

        If ignoreWord = False Then
            wrd.Text = replWord
        End If

    End If
Next
End Sub
4

2 に答える 2

1

私があなたを正しく理解しているなら、私はこれがそれをするかもしれないと思います:

If InStr(value, "page") > 0 And InStr(value, "continued on next") = 0 Then
    value = Replace(value, "page", "page (title needs bolded)")
End If

つまり、値に「page」がどこかに含まれ、「continue to next」がどこにも含まれていない場合は、「page」を「page(タイトルは太字にする必要があります)」に置き換えます。

于 2012-05-18T22:03:18.210 に答える
1

このような?

Option Explicit

Sub Sample()
    Dim wrd As Range
    Dim srchText As String, avdText As String, replWord As String
    Dim ar() As String
    Dim ignoreWord As Boolean

    srchText = "page"
    avdText = "continued on next"
    replWord = "page (title needs bolded)"

    ar = Split(avdText, " ")

    For Each wrd In ActiveDocument.Words
        ignoreWord = False

        If wrd = srchText Then
            If Trim(wrd.Previous(Unit:=wdWord, Count:=1).Text) = Trim(ar(2)) Then
                If Trim(wrd.Previous(Unit:=wdWord, Count:=2).Text) = Trim(ar(1)) Then
                    If Trim(wrd.Previous(Unit:=wdWord, Count:=3).Text) = Trim(ar(0)) Then
                        ignoreWord = True
                    End If
                End If
            End If

            If ignoreWord = False Then
                wrd.Text = replWord
            End If
        End If
    Next
End Sub
于 2012-05-21T13:35:20.027 に答える