先日の東京のマクロ勉強会 の参加者の方からのご要望で作ってみました。
一括置換を用いて翻訳をする場合に、英語から日本語にする場合、時々、半角のまま残っているスペースがあります。
それを簡単に探し出すマクロです。
<目次>
このマクロでできること
文書中の半角文字を探します。
ワイルドカードを用いて、以下の図中の記号を検索します。
半角スペースから、~(チルダ )までです。
文書中にあるこれら記号のかたまりの数を数えて、さらに、現在のカーソル位置から下に向かって検索をすすめます。
なお、検索は文書の最後で中止します。
文頭から検索する場合には、カーソルを文頭に移動してから実行してください。
解説
ワイルドカードで検索をします。
検索する文字列は、"[ -~]{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