'全角と半角の変換
Debug.Print StrConv("A", vbWide) '全角へ変換
Debug.Print StrConv("A", vbNarrow) '半角へ変換
Dim A
A = "ABC-123-アイウ"
'アルファベットのみを全角へ変換
For i = 1 To Len(A)
If Mid(A, i, 1) Like "[A-Z]" Then
Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbWide)
End If
Next
Debug.Print A
'数値のみを全角へ変換
For i = 1 To Len(A)
If Mid(A, i, 1) Like "[0-9]" Then
Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbWide)
End If
Next
Debug.Print A
'カタカナのみを全角へ変換
For i = 1 To Len(A)
If Mid(A, i, 1) Like "[ア-ン]" Then
Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbWide)
End If
Next
Debug.Print A
Dim A
A = "ABC-123-アイウ"
'アルファベットのみを半角へ変換
For i = 1 To Len(A)
If Mid(A, i, 1) Like "[A-Z]" Then
Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbNarrow)
End If
Next
Debug.Print A
'数値のみを半角へ変換
For i = 1 To Len(A)
If Mid(A, i, 1) Like "[0-9]" Then
Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbNarrow)
End If
Next
Debug.Print A
'カタカナのみを半角へ変換
For i = 1 To Len(A)
If Mid(A, i, 1) Like "[ア-ン]" Then
Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbNarrow)
End If
Next
Debug.Print A
'全角と半角を区別しないで比較する
Debug.Print StrConv("ABC", vbWide) = StrConv("ABC", vbWide)
'全角と半角を区別しないで検索する
Debug.Print InStr(StrConv("ABC", vbWide), StrConv("A", vbWide)) > 0
'全角と半角の判定
Debug.Print Len("A") * 2 = LenB(StrConv("A", vbFromUnicode)) '全角の判定
Debug.Print Len("A") = LenB(StrConv("A", vbFromUnicode)) '半角の判定
'全角と半角が混在しているかの判定
B = Len("ABC")
C = LenB(StrConv("ABC", vbFromUnicode))
Debug.Print B <> C And B * 2 <> C