先日の東京のマクロ勉強会 の参加者の方からのご要望で作ってみました。
一括置換を用いて翻訳をする場合に、英語から日本語にする場合、時々、半角のまま残っているスペースがあります。
それを簡単に探し出すマクロです。
<目次>
このマクロでできること
文書中の半角文字を探します。
ワイルドカードを用いて、以下の図中の記号を検索します。
半角スペースから、~(チルダ )までです。
文書中にあるこれら記号のかたまりの数を数えて、さらに、現在のカーソル位置から下に向かって検索をすすめます。
なお、検索は文書の最後で中止します。
文頭から検索する場合には、カーソルを文頭に移動してから実行してください。
解説
ワイルドカードで検索をします。
検索する文字列は、"[ -~]{1,}" としています。半角スペースからチルダまでの1文字以上の文字列ですね。
マクロ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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 |