• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでシート名でソート)

Excelでシート名でソートする方法

このQ&Aのポイント
  • エクセルのシートをシート名でソートする方法について教えてください。シートの並び替えをVBAで行いたいです。
  • シート名は半角英数字と漢字で構成されており、ソートの順序は「0~9」→「A~Z」→「0_0~9_Z」→「A_1~Z_Z」となります。ただし、一番左端と右端の3つのシートは並び替えをしないようにしてください。
  • 様々な方法を試しましたが、シート名が数字の場合はうまく動作しましたが、それ以外の場合はうまくいきませんでした。どのようにすれば要件に合ったシート名でソートできるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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

yana7779san
質問者

お礼

keithinさん、ご回答有り難う御座いました。 動作、確認できました。 「シート追加、シート名転記、関数LEN()を使用してセルに転記、 並び替え、追加シート削除」の流れで宜しいですか。 大変助かりました。本当に有り難う御座いました。