わちょんさんのYouTubeを見て、Excelの神髄さんの回答を見て、書いてみたけどエラーばっかり
Sub VBA100ノック15()
Dim i As Long
Dim ws As Worksheet
Application.Worksheets.Add Before:=Worksheets(1)
Worksheets(1).Name = "シート名一覧"
Set ws = Worksheets("シート名一覧")
For i = 1 To Sheets.Count
Cells(i, 1).Value = Sheets(i).Name
Next i
Columns(1).AutoFit
Columns(1).NumberFormat = "@"
'並び替え
Range("A:A").Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes
For i = 2 To Sheets.Count - 1
Worksheets(ws.Cells(i, 1).Value).Move After:=Worksheets(i - 1)(★)
Next i
Application.DisplayAlerts = False
ws.Delete
End Sub
★でエラーになって進まない…。神髄さんの解答3とほぼ同じなのに、と思って★ばっかり見てたけど原因は違った。
「Columns(1).NumberFormat = "@"」これの場所だった。
シート名取得してから、文字列に変更("@")してたけど、こうすると04月とかが4月になっちゃって、「そんなシート名ありません」と判定されてしまう。
シート名取得する前に、Numberformatをいれることで、エラーなく実行できました(^^)
わちょんさんのYouTubeみたから、間違いに気づけたなと思う。
いつもわかりやすい動画をありがとうございます。