« アイディア・スイッチのマクロ | トップページ | 文字書式を保存/復元するマクロ »

2010年4月22日 (木)

カーソル位置より前に同じ文字列が記載されているか調べるマクロ

翻訳の最中に、特定の名称の冠詞はtheなのか、aなのか、迷ったことありませんか?

いや、複雑な定冠詞と不定冠詞の話をしているのではなくて、たた単純に
この名称が今までの文中に出てきたのかどうか、調べることなんですが。

▼作用
選択した文字列が、選択したカーソルの位置よりも前に記載されているのかどうか
を調べるマクロです。

▼工夫
メッセージボックスで対話をしながら、出てくる文字列の位置を確認
することができます。

Maekisai

「はい(Y)」をクリックすると、次の検索をします。

「いいえ(N)」をクリックすると、最初に選択した文字列の位置に
カーソルが戻ります。

私は、[Alt] + [F]に登録して使っています。

▼プログラム
Sub 前記載の確認()

Dim myRange As Range
Dim Msg, Style, Title, Response As String
Dim SS, SE As Long
Dim FoundBln As Boolean

SS = Selection.Start
SE = Selection.End
FoundBln = False

'文字列が選択されていない場合には終了
If SS = SE Then End

'表示される言葉の設定
Msg = "次を検索しますか?"
Style = vbYesNo + vbQuestion + vbDefaultButton2
Title = "検索結果"

Set myRange = ActiveDocument.Range(0, 0)
With myRange.Find
    .Wrap = wdFindStop
    .Execute findtext:=Selection.Text
   
    Do While .Found = True
        If myRange.Start <> SS Then
            FoundBln = True
            myRange.Select
            Response = MsgBox(Msg, Style, Title)
            If Response = vbYes Then
                myRange.Collapse direction:=wdCollapseEnd
                .Execute
            Else
                Exit Do
            End If
        Else
            If FoundBln = False Then
                MsgBox "見つかりませんでした。"
                Selection.Collapse direction:=wdCollapseEnd
                End
            Else
                MsgBox "これ以上見つかりませんでした。"
                Exit Do
            End If
        End If
    Loop
   
End With

Set myRange = ActiveDocument.Range(SS, SS)

With myRange.Find
    .Wrap = wdFindStop
    .Execute findtext:=Selection.Text
End With

myRange.Select
Selection.Collapse direction:=wdCollapseEnd

Set myRange = Nothing

End Sub

|

« アイディア・スイッチのマクロ | トップページ | 文字書式を保存/復元するマクロ »

マクロプログラム」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/48148827

この記事へのトラックバック一覧です: カーソル位置より前に同じ文字列が記載されているか調べるマクロ:

« アイディア・スイッチのマクロ | トップページ | 文字書式を保存/復元するマクロ »