- ベストアンサー
既存の複数のシート名を一括変換するには
既存のシート名「sheet1」、「sheet2」、「sheet3」……に、「原稿1」、「原稿2」、「原稿3」……と、エクセルマクロを使って一括で変換したいと思っています。 シートからシート名を抜き出すのはありますが、その逆のものは探しても見当たりませんでした。 どなたか教えていただけると助かります。 できれば、同じファイルの別シート(シート名一覧)に書いたものが、各シート名になると嬉しいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
シート名「シート名一覧」のA1セルにシート名一覧と記入し,A2セルから下向けに新しいシート名が列記してあるとします。無駄にややこしくしないため,とりあえず暫定的に新しいシート名は現在のシート枚数に過不足無く並べてあるとします。 ところで新しいシート名を一覧しておくのは良いのですが,それが一体「今現在どの名前のシート用の新しい名前なのか」の対応について,どうしたいのか説明が足りてません。 とりあえず「シート名一覧」シートをシート名タブの並びの「一番左」に配置して,2枚目のシートから順に名前を付け替えていくことにしてみます。 作成例: sub macro1() dim i on error resume next for i = 2 to worksheets.count worksheets(i).name = worksheets("シート名一覧").cells(i-1, "A") next i end sub #あなたが見つけた「シート名一覧を書き出すマクロ」を参考にすれば,それをつかって今現在のシート名一覧をまず並べさせ,その順番で「新しい名前」を列記して見つけたマクロの裏返しでシート名をつけさせる(シート名を書き換えるという具体的なマクロは,上述を参考にします)ことでも出来そうですね。
お礼
あまり利用したことがなくて、勝手がわからず変なところに御礼を入力していました。 本当に助かりました。ありがとうございました。
補足
説明が足りなくて申し訳ありません。 町名ごとのシートが200ぐらいあり、そのデータを入力してもらうのでシート名に「原稿1」、「原稿2」と名前を変換したかったのです。 シート数もわからいので、まずシート名を抜き出し「シート名一覧」のシートを挿入するマクロを使いました。 次に、枚数もわかったので「原稿1」、「原稿2」とシート名を変更したかったのです。 keithinさんの教えてくださったマクロで、見事願いは叶いました。 本当にありがとうございました。