• ベストアンサー

EXCELで、セル内の半角カナのみを削除する関数

いつもお世話になっております。 EXCELで、セル内の半角カナのみを削除する関数はございますでしょうか?     A     B  1  タナカ田中    田中 2  キノシタ木下   木下 3  オノ小野    小野 といった具合です。 よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 例えば、 半角カタカナ+全角 というようになっているのでしたら、 =MID(A1,MATCH(TRUE,INDEX(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>256,,),0),255) このような数式で、削除することが可能です。(ただし、数字やアルファベットも含みます。それを、半角カタカナでくくることも可能ですが、数式が長くなりすぎます。) しかし、それ以上に、半角カタカナと全角とが混在していたり、英数と混在していて、半角カタカナだけを削除するのは、上記のような数式ではうまくいきません。 その場合は、例えば、以下のようなユーザー定義関数を使うことになります。 '標準モジュール登録 Public Function DOBK(ByVal myStr As String) As String 'DelOneByteKana ->DOBK Dim Re As Object, Matches As Object, Match As Object Dim Buf As String With CreateObject("VBScript.RegExp") '厳密には、Unicodeの半角カタカナの範囲ですから、JISの\xA1~\xDFとは違っています。   .Pattern = "[\uFF66-\uFF9F]"   .Global = True   Buf = myStr   If .test(Buf) Then     Set Matches = .Execute(Buf)     For Each Match In Matches       Buf = Replace(Buf, Match, "", , , vbBinaryCompare)     Next   End If End With   DOBK = Buf End Function

acmr
質問者

お礼

ご回答ありがとうございます! 一番最初の関数でできました!! すごい! 助かりました!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

一発でそういった処理のできる関数はないはずです。 力技にはなりますが、A列の文字列をmid関数を使って1文字ずつ取り出して、code関数で177~221(ひょっとしたら少し違うかも)だったら空白に(substitute関数を使って)置換し、それぞれを最後に結びつける方法は考えられます。スマートな方法ではありませんし、作業セルも結構使うことにはなりますが・・・

acmr
質問者

お礼

早速のご回答ありがとうございます。 一発でできないことがわかっただけでも、助かりました! 根気良く、作業に取り掛かります!

すると、全ての回答が全文表示されます。

関連するQ&A