シートをシート名でSortするモジュールです。
  
Sub SP_8530SheetSortNomi(obj対象ブック As Object)
'*****************************************************
'@ 指定ブックのシートをシート名でソートする
'* [INPUT]  obj対象ブック As Object      '==ブックオブジェクト
'*****************************************************
Dim intShtLoop As INTEGER
Dim strTNam As String
Dim strW As String
DIM intShtName_Su AS INTEGER              '==シート数
DIM strShtName(1 TO 512) AS STRING        '==シート名
  
'***シート名の取得()
    intShtName_Su = 0
    For intShtLoop = 1 To obj対象ブック.Worksheets.Count
        intShtName_Su = intShtName_Su + 1
        strShtName(intShtName_Su) = obj対象ブック.Worksheets(intShtLoop).Name
    Next
'
'***1シートしかなければここまで
    if intShtName_Su = 0 then
       EXIT SUB
    END IF
'
'***SORT
    Call SP_OZSORT_1NOMI(strShtName(), intShtName_Su)
'
'***1つめは一番前に
    strTNam = strShtName(1)
    obj対象ブック.Sheets(strTNam).Move BEFORE:=obj対象ブック.Sheets(1)
'
'***2つめ以降はその後ろに
    For intShtLoop = 2 To intShtName_Su
        strW = strShtName(intShtLoop)
        obj対象ブック.Sheets(strW).Move after:=obj対象ブック.Sheets(strTNam)
        strTNam = strW
    Next
  
'***EXIT
    Exit Sub
End Sub
Sub SP_OZSORT_1NOMI(strIOHkey() As String, intInHsu As INTEGER)
'******************************************************************
'@  昇順ソート : EXCHANGE SORT
'*=================================================================
'*  『input』  strIOHkey() AS STRING    '==KEY項目
'*             intInHsu AS Integer      '==ソート対象データ数
'*  『output』 strIOHkey() AS STING     '==ソート後 KEY項目
'******************************************************************
Dim strWs As String
Dim intWi As Long
Dim intWj As Long
'
'***SORT
     For intWi = 1 To intInHsu - 1
        For intWj = intWi + 1 To intInHsu
           If strIOHkey(intWi) > strIOHkey(intWj) Then
              strWs = strIOHkey(intWi)
              strIOHkey(intWi) = strIOHkey(intWj)
              strIOHkey(intWj) = strWs
           End If
        Next
     Next
'
'*** EXIT
    Exit Sub
End Sub
  
テスト用メインです
Sub TestMain()
'*****************************************************
'@ SP_8530SheetSortNomiのテスト用メイン
'*****************************************************
DIM strBookPath AS STRING
DIM obj対象ブック As Object      '==ブックオブジェクト
'
'***TEST用データブック
    strBookPath = ThisWorkBook.Sheets(1).RANGE("DataPath")
    IF strBookPath = "" THEN
       MSGBOX "TEST用データブックを指定して下さい"
       EXIT SUB
    END IF
'
'***TEST用ブックOPEN
    SET obj対象ブック = Workbooks.Open(FileName:=strBookPath)
'
'***CALL
    CALL SP_8530SheetSortNomi(obj対象ブック)
'
'***後始末
    SET obj対象ブック = NOTHING
'
'*** EXIT
    Exit Sub
  
End Sub