追加したExcelワークシートって,見出しの名前で並べ替えする機能はないですよね。しかしVBAを使うと並べ替えができます。
方法はアルゴリズムが安定とされているバブルソートを使います。
バブルソートはリストにおいて隣り合うふたつの要素の値を比較して条件に応じた交換を行う整列アルゴリズムです。
条件とは値の大小関係です。「値の大きい順(降順)」か「値の小さい順(昇順)」にリストを並び替えます。
このソートを実行すると値の大きいまたは小さい要素が浮かびあがってくるように見えることから、バブル(bubble: 泡)ソートと呼ばれます。バブルソート
条件とは値の大小関係です。「値の大きい順(降順)」か「値の小さい順(昇順)」にリストを並び替えます。
このソートを実行すると値の大きいまたは小さい要素が浮かびあがってくるように見えることから、バブル(bubble: 泡)ソートと呼ばれます。バブルソート
隣り合うシート見出し名を比較しながら並べ替えをするので,比較回数は n(n-1)/2 となり
下のコード通り2重ループにすることでできます。この平均計算時間は O(n2)となります。
Sub Bubble()
' ワークシートを昇順で並べ替える
Dim sopg As Long
Dim comp As Long
For sopg = 1 To Worksheets.Count
For comp = 1 To Worksheets.Count - 1
If Worksheets(comp).Name > Worksheets(comp + 1).Name Then
Worksheets(comp).Move After:=Worksheets(comp + 1)
End If
Next comp
Next sopg
End Sub
例えばこのようにバラバラに並んだシート見出しも…

非力な Intel Pentium U5600(1.33GHz)でもほぼ一瞬 ^^; で

かゆいところに手が届くのは良いですね 😉
