- ベストアンサー
エクセル、シートの並び替え
エクセルで何かを触ってしまったようで、シートの並びがめちゃめちゃになりました。これを簡単に並び替える方法はないでしょうか? シートの移動で地道にやれば出来るのは分かるのですが。 シートは50枚ほどです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
マクロに名前を付けて下記をそのマクロにコピーして実行してください。 Sub マクロ名() Dim i As Integer '←ここからコピー Dim j As Integer Dim iAnswer As VbMsgBoxResult iAnswer = MsgBox("シートの並べ換えをしますか?" & Chr(10) _ & "はいをクリックすると実行", _ vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets") For i = 1 To Sheets.Count For j = 1 To Sheets.Count - 1 If iAnswer = vbYes Then If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then Sheets(j).Move After:=Sheets(j + 1) End If ElseIf iAnswer = vbNo Then If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then Sheets(j).Move After:=Sheets(j + 1) End If End If Next j Next i '←ここまでコピー End Sub これでマクロを実行させるとメッセージが表示され「はい」で昇順、「いいえ」で降順に並びます。
その他の回答 (5)
- zenjee
- ベストアンサー率47% (50/106)
>シート名は、数字です。間は飛んでますが、並びは数字の順に並べたいと思っています。 ご質問の際に「めちゃめちゃ」という抽象的な表現でなく、上記のことをまず最初に書いていただければ、回答される方も迷わずに済んだのではないかと思います。 回答については、既にNo.3 O_cyan さん及びNo.5 imogasiさんが諸条件に適合する適切な回答をされてますので、私からこれ以上屋上屋を重ねることは差し控えさせていただきます。
お礼
? 並びはめちゃめちゃになってしまったのですが・・・。
- imogasi
- ベストアンサー率27% (4737/17069)
シート名の名前(漢字かな英字数字・全角半角)の順番なら名前をプログラム内で(Sheet.Name)ソートして、その順に、VBAで並び替えられます。 並び順が名前と関係ないなら、50シート名をシートの列のセルに一旦入力し(プログラムでリストアップもできますが)、セルの横に順番数字を振るか、順番を決める値を並べて入力し、そちらの付加情報ででソートし、その順番にシートを並べ替えることができます。Sheet(0)のようなインデックスに酔う表現を使って順番を決めるか、名前を使ってもできます。 後者は、たとえば Sub test08() Application.Worksheets("sheet3").Move ActiveWorkbook.Worksheets("Sheet1") End Sub でSheet3はSheet1のまえ(左)に位置します。 Sub test08() Application.Worksheets("sheet3").Move ,ActiveWorkbook.Worksheets("Sheet1") End Sub でSheet3がSheet1のすぐ右に来ます。 これらを使います。 マクロ(VBA)を使わないとできないように思います。
お礼
やっぱりマクロなのですね。 ありがとうございます。
- zenjee
- ベストアンサー率47% (50/106)
>シートの並びがめちゃめちゃになりました。 Sheet名はどうなっているのでしょうか。 別に名前を付けずにsheet1、Sheet2……のように最初のままになっているのでしょうか。 それともランダムな文字が名前に付けられているのでしょうか。(例えば○○営業所、××店のように) もしそうだとするとシートの順番には何か決まったルールがあるのでしょうか。 もしよかったら補足してください。 それによって簡単に出来るか否かが判断できると思いますので。……
お礼
シート名は、数字です。間は飛んでますが、並びは数字の順に並べたいと思っています。
- tamotsu180
- ベストアンサー率22% (2/9)
どのように簡単に・・かがわかりませんが、 ドラッグで移動ができます。 っていうのは、知ってるのかな・・・ シートの右クリックでシートの移動よりは楽です。
お礼
ありがとうございます。 そういう方法もありましたね!(思いついてませんでした) 多分それで移動してしまったんだと思います。
- mu2011
- ベストアンサー率38% (1910/4994)
シート並び替えは、地道にやるしかないと思います。又、ブック保護でシート移動ができないようにガードできますので、お試しください。 ・ツール→保護→ブック保護→保護対象でシートをチェックオン→パスワード設定
お礼
方法は無いのですね。 ガードはやってみたいと思います。 ありがとうございました。
お礼
ありがとうございます。 マクロはほとんどやったことがないのですが、こんな方法もあるのですね。