• ベストアンサー

PHONETIC関数に関連して

たとえばA1に漢字の氏名「別所 順子」があるとして B1には現在 「=ASC(PHONETIC(A1))」の関数を利用し 「ベッショ ジュンコ」と表示されています。 これをB1の関数を変更し「ベツシヨ ジユンコ」というふうに 小文字を大文字に変換して表示させたいのです。 該当文字は「アイウエオ」「ツ」「ヤユヨ」位だと思います。 お分かりになる方よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 '-------------------------------------------------

excel110
質問者

お礼

おはようございます。いろいろ考えていただきありがとうございます。あとで試してみたいと思います。

その他の回答 (1)

回答No.1

参考HP: http://www.relief.jp/itnote/archives/002223.php ちなみに 小文字ではなく 小さい仮名 拗音と促音

関連するQ&A

専門家に質問してみよう