Home » エクセルマクロ・Excel VBAの使い方 » Worksheet・Chartオブジェクト » シートを並べ替えるExcelマクロ

対象:Excel97, Excel2000, Excel2002, Excel2003

シートの名前順で並べ替えをしたいのですがどうすればいいのでしょう?
シートを自動的にソートすることはできないのでしょうか?

大量にシートがあるブック(Excelファイル)を扱っている方から、よくいただく質問の一つです。

シート見出しをドラッグアンドドロップすることで、シートの並び替えはできますが大量にシートがあるときに、一つずつ移動するのが面倒なので自動化できないか?ということです。

[スポンサード リンク]

よく出る要望ではありますが、残念ながらExcelの標準機能にはないので、VBA(Visual Basic for Applications)でマクロを作りましょう。


Sub シートをシート名の昇順で並び替える()

 Dim s1 As Long
 Dim s2 As Long

 For s1 = 1 To Sheets.Count
  For s2 = 1 To Sheets.Count - 1
   If Sheets(s2).Name > Sheets(s2 + 1).Name Then
    Sheets(s2).Move After:=Sheets(s2 + 1)
   End If
  Next s2
 Next s1

End Sub

上記のSubプロシージャを、VBE(Visual Basic Editor)を起動して標準モジュールに貼り付け、シートを並び替えたいブックがアクティブな状態でSortSheetsマクロを実行すれば、並べ替えが行われます。

やっていることは、ソートのアルゴリズムでは一番単純なバブルソートです。バブルソートについては、検索してみるといろんなWebページが見つかりますので、興味のある方はあちこち読んでみてください。

バブルソートはソートアルゴリズムの中では遅いという欠点を持ちますが、処理内容がシンプルでわかりやすいですし、ブック内でシートを並べ替えるという機能であれば遅いといっても、まあ問題にならないのではないかと思います。

関連語句
並べかえる,ならべかえる,並び替える,ならびかえる,ソートする,ソーティングする 

Home » エクセルマクロ・Excel VBAの使い方 » Worksheet・Chartオブジェクト » シートを並べ替えるExcelマクロ

[スポンサード リンク]
[スポンサード リンク]

TrackBack:2

TrackBack URL
マクロにショートカットキーを割り当てる−マクロダイアログ from インストラクターのネタ帳
対象:Excel 97,2000,2002,2003 これまでこのサイトでいくつかのマクロをご紹介してきました。 ・ワークシート名一覧を作成したい ・非表示シートをまとめて表示したい ・シートを並べ替えたい ・マクロでフリガナをふる 登録したマクロを実行する方法はいろいろあります...
不要なワークシートを削除する from インストラクターのネタ帳
対象:Excel 97,2000,2002,2003 Excelを使って実務で資料作成をしていると、ワークシートの整理整頓をする処理が必要になることが少なくありません。 このサイトでは、ワークシートの整理に役立つ以下のようなVBAマクロをご紹介してきました。 ・シート名一覧作成マクロ ...

Home » エクセルマクロ・Excel VBAの使い方 » Worksheet・Chartオブジェクト » シートを並べ替えるExcelマクロ

「Worksheet・Chartオブジェクト」の記事一覧

検索

最近じっくりと読まれている記事

.