HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > ブック内のすべてのシートの並び順を逆にする

ブック内のすべてのシートの並び順を逆にする|Excel VBA

シート操作関連のテクニック

ブック内のすべてのシートの並び順を逆にする

(Excel 2000/2002/2003/2007/2010)

次のサンプルはブック内のすべてのシートの並び順を逆にします。
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枚目だったシートの前(左側)に移動します。
非表示のシートも含めて並べ替えられます。