- ベストアンサー
PHONETIC関数に関連して
たとえばA1に漢字の氏名「別所 順子」があるとして B1には現在 「=ASC(PHONETIC(A1))」の関数を利用し 「ベッショ ジュンコ」と表示されています。 これをB1の関数を変更し「ベツシヨ ジユンコ」というふうに 小文字を大文字に変換して表示させたいのです。 該当文字は「アイウエオ」「ツ」「ヤユヨ」位だと思います。 お分かりになる方よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 関数で考えて見ましたが、適当な方法が見つかりません。 そこで、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 '-------------------------------------------------
その他の回答 (1)
- tortue2009
- ベストアンサー率53% (24/45)
参考HP: http://www.relief.jp/itnote/archives/002223.php ちなみに 小文字ではなく 小さい仮名 拗音と促音
お礼
おはようございます。いろいろ考えていただきありがとうございます。あとで試してみたいと思います。