Vorsorge

雑記帳

【vba】全角英数字を半角英数字に変更

全文の全角英数字を半角英数字に変更するマクロは下記を参照
q.hatena.ne.jp

Sub 英数半角化()
    '
    ' 選択範囲の全角英数字を半角に置換
    '
    
    '初期化
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    
    For i = 48 To 57 Step 1
        With Selection.Find
            .Text = StrConv(Chr(i), 4)
            .Replacement.Text = Chr(i)
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchFuzzy = False
            .MatchWildcards = True
        End With
        
        Selection.Find.Execute Replace:=wdReplaceAll
    Next
    
    For i = 65 To 90 Step 1
        With Selection.Find
            .Text = StrConv(Chr(i), 4)
            .Replacement.Text = Chr(i)
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchFuzzy = False
            .MatchWildcards = True
        End With
        
        Selection.Find.Execute Replace:=wdReplaceAll
    Next
    
    For i = 97 To 122 Step 1
        With Selection.Find
            .Text = StrConv(Chr(i), 4)
            .Replacement.Text = Chr(i)
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchFuzzy = False
            .MatchWildcards = True
        End With
        
        Selection.Find.Execute Replace:=wdReplaceAll
    Next
End Sub