こんにちは。
例えば、
半角カタカナ+全角 というようになっているのでしたら、
=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
お礼
ご回答ありがとうございます! 一番最初の関数でできました!! すごい! 助かりました!!