VBA シートを任意の順序で並べ替える
シートを任意の順序で並べ替えるSub test() ' シート名を取得 Dim i As Long Dim WS As Worksheet Worksheets.Add(after:=Worksheets(Worksheets.Count)) _ .Name = "INDEX" ' 並べ替え用シートを追加 Set WS = Sheets("INDEX") With WS For i = 1 To Worksheets.Count ' すべてのシート名を出力 .Cells(i, "A").Value = Sheets(i).Name Next i End WithEnd SubSub test2() ' シートを任意の順序で並べ替える Dim i As Long Dim WS As Worksheet Set WS = Sheets("INDEX") With WS ' C列並べ替え後1番目シートを一番左へ移動 Sheets(.Cells(1, "C").Value).Move Before:=Worksheets(1) For i = 2 To Worksheets.Count ' 2番目のシートから並べ替える Sheets(.Cells(i, "C").Value).Move after:=Sheets(i - 1) Next i End WithEnd Sub実行結果― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る関連記事『VBA シート追加・削除』シートの追加構文Worksheets.Add(Before, After, Count, Type)引数なにも指定しない場合、アクティブシートの前に追加…ameblo.jp『VBA シート移動・コピー』シートの移動構文Worksheets.Move(Before, After)Sub test1() ’Sheet2をSheet3の後ろ…ameblo.jp