Excel VBAでのデータの整列についてのサンプルです.

目次

  1. 並び替え
  2. 並び替えのために振り仮名を指定する

並び替え

リボンに表示されるデータ>並び替えにあたる機能を使った方法です.
アクティブシートにおけるデータの並び替えは次のように行います.

With ActiveSheet.Sort.SortFields
.Clear
.Add Key:=Range("フィールドの基準を与えるセル"), Order:=xlDescending
' .Add ソートの第2・第3条件があれば,以下,第1条件に倣う
End With

With ActiveSheet.Sort
.SetRange Range("対象とする表の全範囲")
.Header = xlYes
.Apply
End With

前半は条件の設定です.
後半は,指定範囲での実行です.

スピル関数のSORTを使う方法はルビに対応していません.
対して,並び替え機能でルビを無視したければActiveSheet.Sort.SortMethod = xlStrokeを指定できます.

並び替えのために振り仮名を指定する

並び替えは通常ルビに従って実行されます.
人名などの並び替えが必要な場合,フリガナを入手できると思いますので,それをルビとして設定する方法です.

Dim i As Long
Dim maxrow as Long: maxrow = Cells(1, nameColumn).End(xlDown).Row
Dim nameColumn As String: nameColumn = "A" 'A列にルビが入っている場合
Dim rubyColumn As String: rubyColumn = "B" 'B列にルビが入っている場合

For i = 2 To maxrow
If Cells(i, rubyColumn) <> "" Then '
Cells(i, nameColumn).Phonetic.Text = Cells(i,rubyColumn) '読みが入っているときだけ処理する
Else
Range(Cells(2, nameColumn), Cells(maxrow, nameColumn)).SetPhonetic 'デフォルト
End If
Next i