文字列から日本語である漢字、ひらがな、カタカナを抽出する方法にはいくつか考えられます。文字列を1文字ずつ判定するのはかなり大変です。数字または英字または記号以外だったら日本語とみなすような処理をすることになりますが、漢字や記号の判定がとても大変です。そこで、現実的な方法は正規表現での抽出になります。ここではその正規表現での方法を紹介します。ちなみに正規表現が分からなくてもコピペで利用できます。以下のVBAコードは事前に正規表現の参照設定をしておく必要があります。5.5」にチェックを付けることで正規表現のRegExpクラスが利用できるようになります。正規表現を利用しているためコードがとても単純になります。正規表現ではひらがなは[ぁ-ん]、全角カタカナは[ァ-ヶ]、漢字は[一-龠〃々〆〇]、半角カタカナは[。[^]が先頭に付くことで、^以降の文字以外、という意味になります。正規表現での漢字の判定は処理を行う環境によって変わってきます。WindowsのVBAであれば漢字の正規表現は[一-龠〃々〆〇]で大丈夫と思いますが、もし不足があった場合は〇の右に追加してください。これら日本語以外を検索して、見つかった文字を空文字に置き換えると、残った文字列は日本語のみとなります。"[^ぁ-んァ-ヶ一-龠〃々〆〇。"[^ぁ-んァ-ヶ一-龠〃々〆〇。上のFindJapaneseRegExp関数を利用するサンプルコードです。引数に「あいう1234567890abc1@大中小abc月火アイウパパ祈祷師佐々木」という文字列と抽出結果を返す変数を渡します。?上のサンプルで「祈祷師佐々木」というのが出てきていますが、ふざけているのではなくこれには意味があります。VBAではこの正規表現では検出できない漢字があります。それが「祈祷」などです。[一-龠]では「々」などが検出できない文字があるため個別に追加しています。それらが正しく漢字として認識できるか、という意味で祈祷師佐々木さんに登場してもらってます。Excel作業をVBAで効率化シェアお問合わせTOPへ。