• 締切済み

エクセルシートの並び替え

VBAでシートの並び替えについて。 下記例の様に、セルA1:A50に書き込まれた順に、シートの並び替えを、上から順番にシートの最後尾に移動させるには、どのようにすれば良いですか?よろしくお願いします。 例 ○テーブル名:List ーーーA 1|にんじん 2|ピーマン 3|大根 4|・・・ 5|・・・ ○現在の並び順 List/ピーマン/・・/にんじん/・・・/・・/・/・・/大根 ○希望する並び順 List/にんじん/ピーマン/大根/・・・/・・・/・・・ 参考にしたURLは下記のとおりです。 http://www.relief.jp/itnote/archives/001300.php http://akubizzz.hp.infoseek.co.jp/sub169.html

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問の表現ずばり書くべきと思う。 「既にシートのA列に、希望する順序のシート名のリストがあり、その順に、シートを並べたい」 ということらしい。 ===== 例データ 香港 大阪 名古屋 東京 福岡 広島 シート「香港」の、A1:A6に希望する並び順が 東京 名古屋 大阪 広島 福岡 香港 とあるとする。 ーー Sub test01() d = Range("A65536").End(xlUp).Row For i = 1 To d shn = Worksheets("香港").Cells(i, "A") ' MsgBox shn If i = 1 Then Application.Worksheets(shn).Move Worksheets(1) Else Application.Worksheets(shn).Move , Worksheets(i - 1) End If Next i End Sub Moveのあとのカンマ1文字が左右しているので注意。 上記で並び順のあるシート名「香港」は、自分の場合に変えること。 少数例しかテストしてないので、よろしく。