サンプルマクロは、アクティヴシートの使用セル範囲に入力された半角カナを全角に変換します。
Sub Sample()
Dim myLetter As String
Dim myStr As String
Dim myCell As Range
On Error Resume Next
For Each myCell In ActiveSheet.UsedRange
myStr = myCell.Value
For i = 1 To Len(myStr)
myLetter = Mid(myStr, i, 1)
Select Case Asc(myLetter)
Case 167 To 181, 197 To 201, 207 To 223
myStr = Left(myStr, i - 1) & StrConv(myLetter, vbWide) _
& Mid(myStr, i + 1)
Case 182 To 196, 202 To 206
Select Case Asc(Mid(myStr, i + 1, 1))
Case 222 To 223
myStr = Left(myStr, i - 1) & _
StrConv(Mid(myStr, i, 2), vbWide) & _
Mid(myStr, i + 2)
Case Else
myStr = Left(myStr, i - 1) & StrConv(myLetter, vbWide) & _
Mid(myStr, i + 1)
End Select
End Select
Next
myCell.Value = myStr
Next
End Sub
|