• ベストアンサー

既存の複数のシート名を一括変換するには

既存のシート名「sheet1」、「sheet2」、「sheet3」……に、「原稿1」、「原稿2」、「原稿3」……と、エクセルマクロを使って一括で変換したいと思っています。 シートからシート名を抜き出すのはありますが、その逆のものは探しても見当たりませんでした。 どなたか教えていただけると助かります。 できれば、同じファイルの別シート(シート名一覧)に書いたものが、各シート名になると嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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 #あなたが見つけた「シート名一覧を書き出すマクロ」を参考にすれば,それをつかって今現在のシート名一覧をまず並べさせ,その順番で「新しい名前」を列記して見つけたマクロの裏返しでシート名をつけさせる(シート名を書き換えるという具体的なマクロは,上述を参考にします)ことでも出来そうですね。

kuskus_2
質問者

お礼

あまり利用したことがなくて、勝手がわからず変なところに御礼を入力していました。 本当に助かりました。ありがとうございました。

kuskus_2
質問者

補足

説明が足りなくて申し訳ありません。 町名ごとのシートが200ぐらいあり、そのデータを入力してもらうのでシート名に「原稿1」、「原稿2」と名前を変換したかったのです。 シート数もわからいので、まずシート名を抜き出し「シート名一覧」のシートを挿入するマクロを使いました。 次に、枚数もわかったので「原稿1」、「原稿2」とシート名を変更したかったのです。 keithinさんの教えてくださったマクロで、見事願いは叶いました。 本当にありがとうございました。

関連するQ&A