| 
    
     |  | ▼拝島 さん: おじゃまします。
 
 >自分が扱ったことのない関数だったり、正規表現だったりと
 
 (1)ASC関数は Applicationオブジェクトのメソッドとして使うと、
 セル範囲をループしなくて一括で、半角化できます。
 (2)半角カタカナの全角化は(どうも 一括でできる方法はなさそう)
 なので、正規表現を使ってセル単位でループして全角化します。
 
 Sub Try1()
 Dim r As Range
 Dim vv, ss As String, s
 Dim regEx As Object
 Dim i As Long, j As Long
 
 Set r = Selection  '← ◆指定のセル範囲に変更してください
 
 '(1)全角の英数字を半角にし
 vv = Application.Asc(r)
 
 '(2)半角のカタカナを全角に
 Set regEx = CreateObject("VBScript.RegExp")
 '半角カタカナのUnicode範囲 : FF65-FF9F
 regEx.Pattern = "[\uFF65-\uFF9F]+"
 regEx.Global = True
 For i = 1 To UBound(vv)
 For j = 1 To UBound(vv, 2)
 ss = vv(i, j)
 If regEx.test(ss) Then
 For Each s In regEx.Execute(ss)
 ss = Replace(ss, s, StrConv(s, vbWide))
 Next
 vv(i, j) = ss
 End If
 Next
 Next
 r.Value = vv
 Set regEx = Nothing
 End Sub
 
 |  |