こんばんは。
関数で考えて見ましたが、適当な方法が見つかりません。
そこで、VBAのユーザー定義関数を考えてみました。
以下のユーザー定義関数を標準モジュールに貼り付けてください。
全角・半角を交じり合った場合も、同様に変換します。
Alt + F11 --> [挿入] --> [標準モジュール]
'-------------------------------------------------
Function UpperKana(strTxt As Variant)
Const sLOWER As String = "ぁ,ぃ,ぅ,ぇ,ぉ,っ,ゃ,ゅ,ょ,ゎ,ァ,ィ,ゥ,ェ,ォ,ッ,ャ,ュ,ョ,ヮ"
Const sUPPER As String = "あ,い,う,え,お,つ,や,ゆ,よ,わ,ア,イ,ウ,エ,オ,ツ,ヤ,ユ,ヨ,ワ"
Dim strVal As String
Dim buf As String
Dim i As Long
Dim aLOWer() As String
Dim aUPPer() As String
aLOWer() = Split(sLOWER, ",")
aUPPer() = Split(sUPPER, ",")
If VarType(strTxt) <> vbString And Not IsNumeric(strVal) Then
buf = strTxt
For i = LBound(aLOWer) To UBound(aLOWer)
buf = Replace(buf, aLOWer(i), aUPPer(i), , , vbBinaryCompare)
buf = Replace(buf, StrConv(aLOWer(i), vbNarrow), StrConv(aUPPer(i), vbNarrow), , , vbBinaryCompare)
Next i
UpperKana = buf
Else
UpperKana = strTxt
End If
End Function
'-------------------------------------------------
お礼
おはようございます。いろいろ考えていただきありがとうございます。あとで試してみたいと思います。