【VBA】漢字の並べ替えができない時の対処法!

VBA
この記事は約2分で読めます。

VBAでデータをソートした時に正しく並び変わらなかったとはありませんか?
今回は並び替えができなかった原因と対処法を紹介します。

この記事でわかること
  • 正しく並び変わらない理由
  • 正しく並び替えるための方法
スポンサーリンク
[ad01]

データが正しくソートされない

ソートされない状態を再現します。

支店ごとの従業員情報を確認するために、以下の通りに並び替えてみましょう。

ソート順

①支店 > ②名前 > ③年齢

使用したコードはこちら↓

実行結果を確認すると名前降順で並び替えたはずが「伊藤さん」が「内山さん」の下にいますね。

うめ
うめ

なんで五十音順に並ばないんだろう?

原因は「ふりがな」

「名前」の列をふりがな表示に切り替えると正しくソートされなかった「伊藤さん」にふりがなが設定されていないことがわかります。

ふりがなが表示されない理由

セルに直接入力されなかったデータではなかったのが理由です。
メモ帳などエディターから貼り付けたデータにはふりがなが表示されません。

対処法

対処法は2つあるので、状況によって使い分けましょう。

対処法
  1. ソート条件でふりがなを除外
  2. ソート前にふりがなを一括削除

ソート条件でふりがなを除外

名前」のソート内に「SortMethod:=xlPinYin」を追記するとふりがなを無視して入れ換えを行います。

ソート前にふりがなを一括削除

ソート前に「Characters.PhoneticCharacters=””」でふりがなの情報を空白に変更します。

これで正しく並び替えができます!

まとめ

今回はVBAでデータをソートした時に正しく並び変わらなかった時の対処法について紹介しました。

コードが間違っていないのにソート順がおかしい場合はふりがなを確認してみましょう!

この記事が気に入ったら
いいね ! しよう

Twitter で
この記事を書いた人
うめ

便利なガジェットレビューやPCのトラブル解消記事を書いています。
単調な繰り返し作業が苦手なので、作業効率化の仕組みを記事にしています。
月間6.5万PV突破しました!
商品レビューのご依頼は「お仕事の依頼について」をご確認ください。

うめをフォローする
VBA
スポンサーリンク
[ad01]
梅屋ラボ
タイトルとURLをコピーしました