Excel マクロ(VBA) でシートを名前順でソートする
備忘録としてVBAマクロを掲載していくシリーズ。
シートをシート名昇順にソートするマクロ。
Excel マクロ(VBA) でシート一覧を作成の応用。
Sub シートをソート() ' 画面更新を一時的に無効化する。 Application.ScreenUpdating = False Dim cnt As Long cnt = Sheets.count ' 作業用シートをブック先頭に作成 Dim work As Worksheet Set work = Worksheets.Add(Sheets(1)) ' シート名一覧を作成する処理 Dim i As Long For i = 1 To cnt work.Cells(i, 1) = Sheets(i).Name Next i ' 一覧をExcel標準機能でソート work.Range("A1:A" & i).Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlGuess ' 一覧の順番通りにシートを並べ替える For i = 1 To cnt Sheets(work.Cells(i, 1).Value).Move before:=work Next i ' シート削除時の警告表示を停止 Application.DisplayAlerts = False ' 作業用シートを削除 work.Delete ' 警告表示を再開する Application.DisplayAlerts = False ' 画面更新を再開する Application.ScreenUpdating = True End Sub