シートをシートの名前で並び替えをします。
サンプルプログラムでは、開いたファイルを並び替えます。


【サンプルプログラム】
Sub SheetSort_Sample()
Dim wb As Workbook
Set wb = Workbooks.Open("シートのソートサンプル.xlsx") ' ブックを開く
SheetNameSort wb, xlDescending ' Worksheet を降順で並べ替え
Set wb = Nothing
End Sub
【関数化】
' ------------------------------------------------------------
' 説明:Worksheet を並べ替え
' 引数:1:WorkBook のオブジェクト
' 2:ソート順
' 補足:昇順は sort_order に xlAscending (省略もしくは1もOK)
' 降順は sort_order に xlDescending (2もOK)
' ------------------------------------------------------------
Sub SheetNameSort(wb As Workbook, Optional sort_order As Integer = xlAscending)
Dim SheetNum As Long
Dim idx1 As Long
Dim idx2 As Long
SheetNum = wb.Sheets.Count ' シート数を取得
' シートの並び替え処理
For idx1 = 1 To SheetNum - 1
For idx2 = idx1 + 1 To SheetNum
If sort_order = xlAscending Then
If Sheets(idx2).Name < Sheets(idx1).Name Then
Sheets(idx2).Move before:=Sheets(idx1)
End If
Else
If Sheets(idx2).Name > Sheets(idx1).Name Then
Sheets(idx2).Move before:=Sheets(idx1)
End If
End If
Next idx2
Next idx1
' 一番左にあるシートを選択状態にする
wb.Worksheets(1).Select
End Sub


コメント