- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでシート名でソート)
Excelでシート名でソートする方法
このQ&Aのポイント
- エクセルのシートをシート名でソートする方法について教えてください。シートの並び替えをVBAで行いたいです。
- シート名は半角英数字と漢字で構成されており、ソートの順序は「0~9」→「A~Z」→「0_0~9_Z」→「A_1~Z_Z」となります。ただし、一番左端と右端の3つのシートは並び替えをしないようにしてください。
- 様々な方法を試しましたが、シート名が数字の場合はうまく動作しましたが、それ以外の場合はうまくいきませんでした。どのようにすれば要件に合ったシート名でソートできるでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ご自分でソート(のプログラム)を実装するより、エクセルにやらせた方がはるかに簡単です。 こんなカンジですかね。 sub macro1() dim i as long, n as long ’調査 worksheets.add before:=worksheets(1) for i = 3 to worksheets.count - 3 worksheets(1).cells(i-2, "A") = worksheets(i).name next i n = worksheets(1).range("A65536").end(xlup).row worksheets(1).range("B1:B" & n).formula = "=LEN(A1)" ’並べ替え range("A:B").sort key1:=range("B1"), order1:=xlascending, key2:=range("A1"), order2:=xlascending, header:=xlno for i = 1 to n worksheets(worksheets(1).cells(i, "A").text).move after:=worksheets(i + 1) next i ’片づけ application.displayalerts = false worksheets(1).delete application.displayalerts = true end sub
お礼
keithinさん、ご回答有り難う御座いました。 動作、確認できました。 「シート追加、シート名転記、関数LEN()を使用してセルに転記、 並び替え、追加シート削除」の流れで宜しいですか。 大変助かりました。本当に有り難う御座いました。