• ベストアンサー

Excelのシート名変更について

いつもお世話になっています。 エクセルにおいて、シート名を自動変更することは可能でしょうか? 現在、1ファイルにシートを100枚用意してあります。 それぞれのシートに「1」~「100」という名前を付けてあります。 このファイルをコピーして、新しいファイルのシート名を「101」~「200」としたいのです。 現在は、一枚ずつ手入力をしていますが、後10ファイル以上(1000シート以上)あり、また今後も発生するためできるだけ簡単に変えられる方法を探しています。 このOKWave内を検索し、欲しい内容に近い回答がありましたので、下記のようなマクロを作成してみましたが、「インデックスが正しくありません」というエラーが出てしまいました。 マクロについては、全く知識がないので、ぜひご教授のほどよろしくお願いいたします。 Sub Macro1() For counter = 101 To 200 Sheets(counter).Select ActiveSheet.Name = CStr(counter) Sheets(counter + 1).Select Next End Sub

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 Personal.xls(個人用マクロブック)にでも入れて、ボタンにでも登録すればよいと思います。 Sub TestSheetCount() Dim sh As Worksheet 'シートオブジェクト Dim shnum As String 'シートの名前 For Each sh In ActiveWorkbook.Worksheets  shnum = StrConv(sh.Name, vbNarrow)  If IsNumeric(shnum) Then   sh.Name = CStr(CLng(shnum) + 100) '100を足す  End If Next End Sub ただし、これは、並べ替えはしてくれません。順番が違っていれば、違ったままです。

michbird
質問者

お礼

さっそくのご回答、どうもありがとうございます! ご助言通り、Personal.xlsに保存して、ツールバーに登録しましたところ、うまく行きました!!\(^o^)/ 望んだ通りの結果で非常に助かりました。 本当にどうもありがとうございました!!

その他の回答 (1)

  • TK1961
  • ベストアンサー率35% (16/45)
回答No.2

 見本を元に最小の変更を加えてみました。 Sub Macro1() For counter = 1 To 100 Sheets(counter).Select ActiveSheet.Name = CStr(counter+100) Next End Sub これを、コピー後のブック(ファイル)で実行してください。

michbird
質問者

お礼

早速のご回答、どうもありがとうございます! なるほど、最初に従来のシート名を読み込んで、それに100を足す、という風にすれば良かったんですね! マクロの命令コマンドを全く知らないため、例文が見つかってもなかなか応用ができません。 これから仕事の合間を見ながら少しずつ勉強していきたいと思います。 今回は本当にありがとうございました!m(_ _)m