プロが教える店舗&オフィスのセキュリティ対策術

B列にアルファベット、数字、カタカナのデータが混在していますが、
これを、カタカナ→アルファベット→数字の順で並び替えるには
どうしたらいいのでしょうか…
A列   B列   C列    A列   B列   C列

AA001 Eコン   10      AA001   クロ    20
AA001  クロ    20   →  AA001   Eコン   10
AA001  1    15      AA001   1    15

このようにしたいです。
データが更新されてもすぐに対応できるようにマクロで処理したいと考えています。
カタカナはすべて半角です。

A 回答 (1件)

例えば、D列に、


カタカナ -> 2
アルファベット -> 1
数字 -> 0
になるような関数作っといて、D列を条件に並べ替えとか。

Function ValType(src As String) As Integer
 If IsNumeric(src) Then ' 数値なら0
  ValType = 0
 Else
  If Left(src, 1) Like "[A-Z]" Then ' 先頭文字が英字なら1
   ValType = 1
  Else
   ValType = 2
  End If
 End If
End Function

--
> データが更新されてもすぐに対応できるようにマクロで処理したいと考えています。

データの入力(更新)時に、勝手に並べ替えされたら困るのでは。
例えば、質問の例の左側3行目を、
AA001  1    15

AA001  シロ   45
って変更しようとしたら、シロを入力した時点で並べ替えが起こっちゃって、どこ入力してたかわからなくなるとか。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!