[[20211106072329]] 『シート管理 ファイル内のシートの並べ替え』(TPP) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シート管理 ファイル内のシートの並べ替え』(TPP)

ファイル内のシートがランダムにあるとして、これを自分の思う通りに並べ替えたい。
例えば○○5、○○3、○○1、○○2、○○6、・・・・・・・○○53のシート名のものを1〜順番に並べ替えたい場合にどのようにしたらよいか教えていただけませんか。マクロでもできるようですが、他の方法はないかよろしくお願いします。マクロでしかできなければ、それを教えて頂けると助かります。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 おはようございます ^^
タブをポチと押したままで、左右にズリズリすれば。。。
思うように成ると思います。
マクロでしたら、色々方法は有るのでしょうけど
対応表を作るのも一案かと。。。m(_ _)m
53シートくらいなら、マクロ組んでる間に出来てしまうかも。(*^^*)
m(_ _)m
(隠居Z) 2021/11/06(土) 07:56

Wabサイトにシート管理というのが見つかりましたが、
https://software.opensquare.net/relaxtools/archives/428/
「昇順や降順に並べ替えたいときがあります。大量にシートがあるブックは面倒ですよね。メニューから「シート管理」を選択します。」というものです。
これを出したいとおもうのですが、うまくいきません。どのようにしているか、教えていただけませんか。
(TPP) 2021/11/06(土) 08:06

 なかなか、本格的で、べんりそぉですね。^^;
ユーザーフォームでメニュを作り
各、処理を設定後、ボタンを押すイベントを
を使い各処理を分岐させ、分岐先毎にマクロを
起動する仕組みの様です。。。←多分。。。(*^^*)
これ
本当にお作りになるのですか。
かなり面倒ですよ。ユーザーフォームは奥が深いかも
底なし。。。よくはまります。抜け出すの大変(^◇^)v
でわ
m(_ _)m
(隠居Z) 2021/11/06(土) 08:28

 追伸。。。A^^;
シート名の規則性ですが
○○1〜○○53
の
最後の丸が数値なんてことはありませんか
若しくは必ず _ とか - とか 
◎◎01〜○○53
とかだともっと簡単かと。。。
この辺りをさらに、詳細をご説明いただくと、フォーム等
作らずとも並び替えだけでよければ、そう、難しくはないかと
思われます。m(_ _)m
(隠居Z) 2021/11/06(土) 09:46

■1
>これを出したいとおもうのですが、うまくいきません。
そのアドインの使い方がわからないということであれば、ここで聞いても始まらないので開発者に直接聞くべきではないですか?
それとも、Excelにもともとそういう機能があると勘違いされたのでしょうか?

■2
>マクロでしかできなければ、
勘違いされているようですが、隠居Zさんもコメントされているようにそのアドインもマクロですよ。

■3
>それを教えて頂けると助かります。
ざっくりいうと↓のような動きのものをつくればよいとおもいます。

 【書き出しマクロ】(1)適当なシートをブックの先頭に追加する
 【書き出しマクロ】(2)ブックの2番目のシートから最後のシートまでを巡回して(1)のシートに書き出す

 手作業で(1)のシートを並び替える

 【並び替えマクロ】(1)ブックの1番目シートのリストを上から順番に見ていき、どんどんブックの末尾にシートを移動させる
 【並び替えマクロ】(2)ブックの1番目シートを削除する

丸投げであれば興味が無いので撤退しますが、頑張ってみようと思うのであれば

 ブックをシートに追加する
 シートを移動する

という動きを【マクロ】の記録でコード化してみてください。必要な命令のいくつかが調べられます。

(もこな2) 2021/11/06(土) 09:49


追加で。
おそらく↓のような感じで対応できるとおもいます。

    Sub 書き出しマクロ()
        Dim i As Long

        With ActiveWorkbook
            Worksheets.【シートを追加する命令】 Before:=.Worksheets(1)
            .Worksheets(1).Name = "並替リストtmp"
            For i = 2 To .Worksheets.Count
                .Worksheets(1).Cells(i - 1, "A").Value = .Worksheets(i).Name
            Next i
        End With
    End Sub
    '=====================================================
    Sub 並び替えマクロ()
        Dim i As Long

        With ActiveWorkbook
            For i = 1 To .Worksheets(1).Cells(.Worksheets(1).Rows.Count, "A").End(xlUp).Row
                .Worksheets(.Worksheets(1).Cells(i, "A").Value).【シートを移動する命令】 after:=.Worksheets(.Worksheets.Count)
            Next i

            Application.DisplayAlerts = False
            .Worksheets(1).Delete
            Application.DisplayAlerts = True
        End With
    End Sub

(もこな2) 2021/11/06(土) 10:16


インストラクターのネタ帳より

Sub シートをシート名の昇順で並び替える()

Dim s1 As Long
Dim s2 As Long
 For s1 = 1 To Sheets.Count
  For s2 = 1 To Sheets.Count - 1
   If Sheets(s2).Name > Sheets(s2 + 1).Name Then
    Sheets(s2).Move After:=Sheets(s2 + 1)
   End If
  Next s2
 Next s1
End Sub

(PP) 2021/11/06(土) 10:29


>これを出したいとおもうのですが、うまくいきません。
ダウンロード のページ
https://software.opensquare.net/relaxtools/downld/
インストール方法 のページ
https://software.opensquare.net/relaxtools/downld/install/
これ読んでわからないならどうしようもないでしょう
(リンクの冒険) 2021/11/06(土) 10:33

皆さんにご迷惑かけました。完成できました。PPさんのマクロでできました。○○の前に01〜53に変更したら、01○○でできました。ありがとうございました。一画面では表示できず、一つ一つやらなければならないかとあきらめていましたが、親切な方々のおかげで、完成しました。感謝です。
(TPP) 2021/11/06(土) 13:32

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.