- ベストアンサー
Excel カタカナと英数字の混在セルでカタカナのみ全角にする
同じセルの中に、半角カタカナと英数字が混在しています。 カタカナのみ全角にし、英数字は半角の設定のままにする関数を教えてください。 アイウエABCショウジ(半角カタカナ+半角英数字) ⇒ アイウエABCショウジ(全角カタカナ+半角英数字)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例の通りに半角カタカナと英数字のみが混在しているなら、 少し邪道ですが、 PHONETIC というフリガナを抽出する関数で代用できます。 半角カタカナは全角カタカナに、半角英数字は半角英数字のままの結果が出ます。 もし、そのセルに平仮名があればカタカナになってしまいますし、 そのセルに「日本とセカイA」と直打ちしたら 「ニホントセカイA」 となってしまいます。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
マクロもあり、ということでしたら、以下のようなコードがあります。 正規表現で、パターンを作ってあります。ただし、これは、Replace関数を使っていますので、もし、Excel97でお使いの場合は、Application.Substitute(c.Value, Match, buf)とすればよいと思います。 Sub Han2Zen() Dim Re As Object Dim Rng As Range Dim myPattern As String Dim buf As String Set Re = CreateObject("VBScript.RegExp") Set Rng = Selection 'マウスで選択します。 myPattern = "([" & Chr(166) & "-" & Chr(223) & "]+)" '半角カタカナ:Web上では禁じられているためで、本来はそのまま入れられる With Re .Pattern = myPattern .Global = True For Each c In Rng If VarType(c) = vbString Then Set Matches = .Execute(c) For Each Match In Matches buf = StrConv(.Replace(Match, "$1"), vbWide) 'パターンにあった部分は全角にしています。 c.Value = Replace(c.Value, Match, buf) '* Next End If Next Set Re = Nothing End With End Sub 確か、半角から全角にするときに、ワークシート上では、自動的に、半濁音や濁音付き文字は、キャストされて一字になったような気がします。
- KenKen_SP
- ベストアンサー率62% (785/1258)
以前に同一内容について回答したことがあります。 参考URLをご覧ください。
お礼
マクロ等の知識がないので、今回は#1の方法でやりましたが、今後、ご回答いただいた方法を勉強します! ありがとうございました。
お礼
セルにはカタカナと英数字しか入っていないので、 PHONETIC関数で、望み通りの結果が得られました。 ありがとうございました。