ブック内のすべてのシートの並び順を逆にする|Excel VBA |
次のサンプルはブック内のすべてのシートの並び順を逆にします。
Moveメソッドを使用してシートを指定した場所に移動します。
Sub SheetSortRev()
Dim ArySheetName() As String 'シート名を格納する動的配列
Dim cnt As Long
Dim i As Long
'シートの数だけ要素を確保
cnt = Sheets.Count
ReDim ArySheetName(cnt)
'動的配列ArySheetNameにシート名を格納
For i = 1 To cnt
ArySheetName(i) = Sheets(i).Name
Next i
For i = cnt To 2 Step -1
Sheets(ArySheetName(i)).Move Before:=Sheets(ArySheetName(1)) '---(1)
Next i
End Sub
(1)のFor...Nextループでは、末尾のシートから2枚目のシートまで順に、1枚目のシートの前(左側)に移動します。引数Beforeに「Before:=Sheets(ArySheetName(1))」と指定することで、最初に1枚目だったシートの前(左側)に移動します。
非表示のシートも含めて並べ替えられます。