|    | 
     ▼拝島 さん: 
おじゃまします。 
 
>自分が扱ったことのない関数だったり、正規表現だったりと 
 
(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 
 
 | 
     
    
   |