- ベストアンサー
excelのセルデータの文字種類によりデータをわける
excelで1つのセルの中に 漢字、ひらがな、数字、英字、英記号などが入っています。 さてこのなかで漢字だけ、あるいはひらがなだけ、あるいは数字だけを表示したいとします。即ちデータを分離して表示したいとします。 どのようにすればいいのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
テストデータとしてSheet1のA1-A4(B列は空き)に下記左端列のデータを作りました。 C・D・F列は下記プログラムの実行結果です。 (A列) (B列) (C列) (D列) (E列) 111大阪asd123 111123 asd 大阪 ならqwカナカア qwカナカア なら astro関東 astro 関東 as123仙台東123 123123 as 仙台東 ALTキーを押しながらF11キーを押して出る、VBE画面 にModule1を挿入し、そこに Sub test01() Dim b As String Dim c As Long For j = 1 To 4 a = Worksheets("sheet1").Cells(j, 1) s1 = "" s2 = "" s3 = "" For i = 1 To Len(a) b = Mid(a, i, 1) ' MsgBox b c = Asc(b) ' MsgBox c Select Case c Case Is < 0 s3 = s3 & Mid(a, i, 1) ' MsgBox "aaa" ' 数字(半角) Case Is < 58 And c > 48 s1 = s1 & b ' 英字小文字(半角) Case Is < 123 And c > 96 s2 = s2 & b ' 英字大文字(半角) Case Is < 91 And c > 64 s2 = s2 & b ' カナ(半角) Case Is < 222 And c > 165 s2 = s2 & b Case Else s2 = s2 & b End Select Next i Worksheets("sheet1").Cells(j, 3) = s1 Worksheets("sheet1").Cells(j, 4) = s2 Worksheets("sheet1").Cells(j, 5) = s3 Next j End Sub を貼りつけて実行してください。 C・D・E列には、上記のように分離されました。 大小英字・カナ(半角)の分離は上記を少し変えれば出来ます。 漢字とひらがなが分離できていませんが取りあえず載せます。
その他の回答 (2)
- coffe-time
- ベストアンサー率0% (0/3)
―――――――――――――――――――――――――――――――――――― A1 |B1 | C1 | D1 |E1 |F1 ――――――――――――――――――――――――――――――――――――― 亜あ4Aa | 亜 | あ | 4 | A | a ――――――――――――――――――――――――――――――――――――― 例えば、 「A1」に「亜あ4Aab」 と入っているのを、 「B1」に「亜」 「C1」に「あ」 「D1」に「 4」 「E1」に「 A」 「F1」に「 a」 てな具合に表示させるというのであれば、 (1)元のデータが入っている、A1をクリック (セルが複数あるいは列全体ならば、その範囲をドラッグ) (2)メニューバーの データ → 区切り位置 スペースによって右または左に揃えられた固定長フィールドのデータ にチェックを入れて次へ (3)区切りたい目盛りの所をマウスでクリックして区切り線をいれて次へ (4)各々のデータについて「列のデータ形式」を設定し、 「表示先」を「B1」にして完了ボタンを押す 質問の意味を取り違えてたらすいません。
お礼
このような機能あること知りませんでした。 とても役に立ちこれで解決しました。
- k-nksm
- ベストアンサー率22% (15/66)
漢字、ひらがな、数字、英字、英記号が入力されているセルをCODE関数で文字のコードを取り出します。 このセルで並べ替えれば、漢字、ひらがな、数字、英字、英記号を分離できます。 例) code 文字列 49 1 65 A 97 a 9250 あ 12321 亜
お礼
どうもありがとうございました 参考になりました。
お礼
力作どうもありがとうございました