習うより慣れろ、とはよく言ったものです。作って見りゃわかる。全シートに対して掲載データソートとシート名変更を実行するマクロです。ソースコードはこんなんになりました。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub 全シートに対して掲載データソートとシート名変更を実行する() Dim ws As Worksheet, i As Integer i = 1 For Each ws In Worksheets ws.Activate Range("A1").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlYes ws.Name = "売上日(10月" & i & "日)" i = i + 1 Next End Sub |
まず、変数wsとiを宣言しiに1を代入します。すべてのワークシートに対してループ処理をするようにFor Eachを使い、ループ一つにつき一つずつiに1を足しながら、それを使ってシート名変更します。シート名は売上日(10月i日)になるはずです。その中で、全ワークシートをActiveにしてから、掲載データB縦に対して、名称でソートをしていく…という流れです。
ちょっとわかりづらいですが…全シートソートボタンを押すとこうなります。
☟取引品目でソートされてますよね。
では二ページ目はどうか?最初のシートにあるソートボタンを押すと…
☟同じく取引品目でソートされてますよね。
当然、取引品目ソートに従い、対応してる取引先もソートされてるわけです。
<糸冬>