VBA Excel カタカナだけを判別してwideとnarrowに変換する
カタカナが含まれていれば全角カナに変更する
文字列 = StrConv(文字列, vbWide) 'JIS全角にする If StrConv(文字列, vbHiragana) <> 文字列 Then 文字列 = 半角カナを全角カナに変える(StrConv(文字列, vbNarrow)) End Ifカタカナが含まれていれば半角カナに変更する
文字列 = StrConv(文字列, vbWide) 'JIS全角にする If StrConv(文字列, vbHiragana) <> 文字列 Then 文字列 = 全角カナを半角カナに変える(StrConv(文字列, vbNarrow)) End If
Function 半角カナを全角カナに変える(文字列 As String) As String
Dim キャラクタ As String
Dim Likeパターン As String
Dim インクリメント As Integer
Likeパターン = "[アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ゙゚ー]"
戻り値 = ""
For インクリメント = 1 To Len(文字列)
キャラクタ = Mid(文字列, インクリメント, 1)
If キャラクタ Like Likeパターン Then
戻り値 = 戻り値 & StrConv(キャラクタ, vbWide)
Else
戻り値 = 戻り値 & キャラクタ
End If
Next
半角カナを全角カナに変える = 戻り値
End Function
Function 全角カナを半角カナに変える(文字列 As String) As String
Dim キャラクタ As String
Dim Likeパターン As String
Dim インクリメント As Integer
Likeパターン = "[アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ゙゚ー]"
戻り値 = ""
For インクリメント = 1 To Len(文字列)
キャラクタ = Mid(文字列, インクリメント, 1)
If キャラクタ Like Likeパターン Then
戻り値 = 戻り値 & キャラクタ
Else
戻り値 = 戻り値 & StrConv(キャラクタ, vbWide)
End If
Next
全角カナを半角カナに変える = 戻り値
End Function