ExcelマクロVBAサンプル集 | シートを名前順に並べ替える | Excelマクロの実用サンプル、エクセルVBA集と解説



最終更新日:2013-08-26

シートを名前順に並べ替える


シートを名前順に並べ替える方法になります。

配列を使っていますが、配列が難しい場合は、

シートに書き出して処理すれば良いでしょう、並べ替えもシート上なら簡単です。


Sub sample()
  Dim i As Long
  Dim arySht() As String
  
  For i = 1 To Sheets.Count
    If i = 1 Then
      ReDim arySht(0)
    Else
      ReDim Preserve arySht(UBound(arySht) + 1)
    End If
    arySht(UBound(arySht)) = Sheets(i).Name
  Next
  Call SheetSort(arySht)
  For i = UBound(arySht) To LBound(arySht) Step -1
    Sheets(arySht(i)).Move Before:=Sheets(1)
  Next
End Sub

Sub SheetSort(ByRef argAry() As String)
  Dim sSwap As String
  Dim i As Integer
  Dim j As Integer
  For i = LBound(argAry) To UBound(argAry)
    For j = UBound(argAry) To i Step -1
      If argAry(i) > argAry(j) Then
        sSwap = argAry(i)
        argAry(i) = argAry(j)
        argAry(j) = sSwap
      End If
    Next j
  Next i
End Sub


上記では、シート名を文字列として処理しています。

どういう事かと言うと、

3000
10000
200


このようなシート名の場合、

10000 < 200 < 3000

となってしまいます。

数値として比較したい場合は、

Dim arySht() As String → Dim arySht() As Long
Sub SheetSort(ByRef argAry() As String) → Sub SheetSort(ByRef argAry() As Long)

このようにすれば、数値として比較されます。




同じテーマ「ExcelマクロVBAサンプル集」の記事

数式内の不要なシート名を削除する(HasFormula)
数式の参照しているセルを取得する
シートの追加・削除(Add,Delete)
シートの複数選択(Select)
複数シートの印刷(PrintOut)
重複削除してコピー(AdvancedFilter)
ブックを安全確実に開く方法(Open)

新着記事 ・・・新着記事一覧を見る

空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.ひらがな⇔カタカナの変換|エクセル基本操作
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
8.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.定数と型宣言文字(Const)|ExcelマクロVBA入門



  • >
  • >
  • >
  • シートを名前順に並べ替える

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    ↑ PAGE TOP