先日の東京のマクロ勉強会 の参加者の方からのご要望で作ってみました。
一括置換を用いて翻訳をする場合に、英語から日本語にする場合、時々、半角のまま残っているスペースがあります。
それを簡単に探し出すマクロです。
<目次>
このマクロでできること
文書中の半角文字を探します。
ワイルドカードを用いて、以下の図中の記号を検索します。
半角スペースから、~(チルダ )までです。
文書中にあるこれら記号のかたまりの数を数えて、さらに、現在のカーソル位置から下に向かって検索をすすめます。
なお、検索は文書の最後で中止します。
文頭から検索する場合には、カーソルを文頭に移動してから実行してください。
解説
ワイルドカードで検索をします。
検索する文字列は、"[ -~]{1,}" としています。半角スペースからチルダまでの1文字以上の文字列ですね。
マクロ
Sub 半角文字の検索()
'半角英数字記号を探します。
Dim myRange As Range
Dim myOriginalRange As Range
Dim myAnswer As String
Dim myCnt As Long
Set myOriginalRange = Selection.Range
Set myRange = ActiveDocument.Range(0, 0)
With myRange.Find
.Text = "[ -~]{1,}"
.MatchWildcards = True
Do While .Execute = True
myCnt = myCnt + 1
Loop
If myCnt = 0 Then
MsgBox "見つかりませんでした。"
Exit Sub
Else
myRange.SetRange myOriginalRange.Start, myOriginalRange.End
Do While .Execute = True
myRange.Select
myAnswer = MsgBox("合計で" & myCnt & "個あります。" & vbCr _
& "次を検索しますか?", vbYesNo, "半角文字の検索")
Select Case myAnswer
Case vbNo
Exit Do
Case vbYes
Selection.Collapse wdCollapseEnd
End Select
Loop
End If
End With
End Sub







