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