ワークシートを並べ替える(指定した順番にする場合)
指定した3枚を「入力→集計→出力」の順に並べます。
実行前に確認
- 指定の名前が存在しないとエラーになります。追加のシートはこの3枚の後ろに残ります。
1サンプルコード
Sub Sample3027()
Dim names As Variant, i As Long
names = Array("入力", "集計", "出力")
For i = UBound(names) To LBound(names) Step -1
With ThisWorkbook
If .Worksheets(names(i)).Index <> 1 Then .Worksheets(names(i)).Move Before:=.Sheets(1)
End With
Next
End Sub図で見る操作の流れ
イメージ図概念図:配列を後ろから処理すると、最終的に指定順で先頭へ並びます。
手動:準備
「入力」「集計」「出力」の3枚を用意
マクロ:逆順で移動
出力 → 集計 → 入力の順で、各シートを先頭へ
結果
入力 → 集計 → 出力 → その他のシート
すでに先頭のシートはその回の移動を省略。指定名が存在しないとエラーになります。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する3つの手順で、コードの使い方を確認できます
- 1
練習用のブックをExcelマクロ有効ブック(.xlsm)で保存します。「入力」「集計」「出力」の3枚を作ります。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]にコードを貼り付けます。
- 3
Sample3027内にカーソルを置いてF5で実行します。指定した3枚を「入力→集計→出力」の順に並べます。