五十音順とかではなく、ある指定された順番だったので、どうしたものかと思いました。
スクリプトに直接書いてもいいのですが、なんとなくマクロのブックにシート『設定』を作成して、そこに「並べ替え対象のファイルパス」と「並べ替え後のシート名の順番」を書くことにしました。
こんなかんじ↓です。
シート『設定』 |
| A |
1 | C:\path\to\file.xlsx |
2 | シート名1 |
3 | シート名2 |
4 | シート名3 |
5 | ... |
VBAがこうです。
恥ずかしながらアルゴリズム知らずなので、もっと効率の良いソート方法があるような気がしてなりません。
もし「並べ替え後のシート名の順番」の途中に空白セルがあったら、そこまでしか並び替えません。また、リストに名前が無かったシートは先頭に来ます。