【Word VBA】文書中の半角文字を数えて検索するWordマクロ(その2)

2011年7月29日

前回の「文書中の半角文字を数えて検索するマクロ」の改良版です。

このマクロでできること

文書中の半角文字を数えた後、カーソル位置から次の半角文字を探します。

前回のマクロでは、文章中に半角文字があっても、カーソル位置以降に半角文字がなかった場合にプログラムが終了してしまうという不具合があります。

それを解消しました。とはいっても、常に、文書の先頭から半角文字を探すように変更しただけですが。

違いをご確認ください。

マクロの解説

ワイルドカードで半角文字を検索しています。.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

-コード
-,