質問: excel2016でマクロを使用して住所並び替えしたいです やりたいことは以下になります 以下のようにバラバラの住所録を町名ごとに 出来れば50音順で、ふりがなをふったりセルに何か入力しなければ出来ない場合は町名毎に並べ替え、町名以降の番地順のみで並べ替えしたいです 東京都杉並区阿佐ヶ谷北1-1-1 東京都杉並区阿佐ヶ谷北1-1-2 東京都杉並区阿佐ヶ谷北1-1-3 東京都杉並区井草1-20-1 東京都杉並区井草1-25-4 東京都台東区谷中1-2-1 東京都台東区谷中1-28-3 のように順番ごとに並べ替えたいです 例; 東京都杉並区井草4-22 東京都杉並区阿佐谷北6-12-7 東京都台東区池之端1-3-45 東京都台東区池之端1-4-22 東京都杉並区阿佐谷北6-12-10 東京都台東区谷中3-4-12 東京都台東区谷中3-4-5 東京都杉並区阿佐谷北6-12-5 東京都杉並区今川1-19-21 東京都台東区浅草1-12-4 東京都杉並区今川1-13-16 東京都中央区入船1-1-17 東京都中央区勝どき5-12-9 東京都中央区入船1-4-3 東京都台東区谷中3-4-8 東京都杉並区今川1-13-6 東京都杉並区今川1-13-4 東京都中央区勝どき5-3-10 東京都台東区池之端1-4-21 東京都中央区入船3-5-8 よろしくお願い致します
回答: Excel/VBAで使用できるソートでは、そのままの状態で簡単にソーティングするのは難しいと思います。 まず、全体として文字コード順でソートされます。 つまり、住所の漢字部分などはだいたい音読み順になります。 また数値については「1,2,10」が「1,10,2」の順でソートされるでしょう。 文字としてのソートではなく、数値は数値の大小でソートさせるために、漢字部分と番・丁・号などをそれぞれ別々のセルに格納してソートするのが一般的な対応になると思います。 なお、漢字部分を読み通りにソートさせるにはフリガナが必要になると思います。 また郵便番号などがあれば、ある程度の地域ごとのソートにすることはできそうです。 対応? こういったソートはVBA上で行うためには、住所を複数セルに分割してソートしたりといった面倒が発生します。 しかし漢字・数字混じりのソートがある程度得意なツールがあります。最近のWindowsOS(7など)のファイル管理機能です。 Explorerでこれらの住所をファイル名としたファイルを1フォルダ内に格納すると、おそらくある程度気持ちのいいソートで表示されると思います。 これを利用して、空のフォルダに住所をファイル名として出力し、そのフォルダからファイル名の一覧を取得する、という方法が利用できるかもしれません。 ※簡単なファイル名で試したら一応できました。 裏ワザというか保証もないですが、参考になれば幸いです。