前回の「文書中の半角文字を数えて検索するマクロ」の改良版です。
<目次>
このマクロでできること
文書中の半角文字を数えた後、カーソル位置から次の半角文字を探します。
前回のマクロでは、文章中に半角文字があっても、カーソル位置以降に半角文字がなかった場合にプログラムが終了してしまうという不具合があります。
それを解消しました。とはいっても、常に、文書の先頭から半角文字を探すように変更しただけですが。
違いをご確認ください。
マクロの解説
ワイルドカードで半角文字を検索しています。.Text = "[ -~]{1,}"
メッセージを表示させる方法(MsgBox関数)は、メッセージボックスの目次 をご覧下さい。
マクロ
Sub 半角文字の検索2() Dim myRange As Range Dim myAnswer As String Dim myCnt As Long Dim myMessage As String Dim myTitle As String 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 Start:=0, End:=0 myMessage = "合計で" & myCnt & "箇所あります。" & vbCr _ & "次を検索しますか?" myTitle = "半角文字の検索" Do While .Execute = True myRange.Select myAnswer = MsgBox(myMessage, vbYesNo, myTitle) Select Case myAnswer Case vbNo Exit Do Case vbYes Selection.Collapse wdCollapseEnd End Select Loop End If End With End Sub