• ベストアンサー

シート名を自動でつけたいのですが、助けてください

大変困っておりまして、どなたか教えていただけませんでしょうか。 エクセル2003の1ファイルの中に sheet1 原稿というシート、2シートがあります。 1.sheet1 A1のセルに店舗の名前が入力されています。  店舗数は 40店舗あります。 2.原稿というシートをコピーして名前を変更していますが、店舗数が多いので、  名前を自動的にシート名に表示したいのです。 似たような質問が出ていたのですが どうも上手く出来ません。 急を要しておりまして、どなたか簡単に出来る方法を教えてください。

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

  • ベストアンサー
  • Bloodhand
  • ベストアンサー率60% (18/30)
回答No.3

「店舗表」というシートを作成し、A2から下方向にシート名としたい店舗名が並ぶというのが前提条件 Sub 店舗数だけ連続追加しシート名を設定() Dim NewWS As Worksheet Dim i As Long For i = 2 To Worksheets("店舗表").Cells(Rows.Count, 1).End(xlUp).Row Worksheets("原稿").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = Worksheets("店舗表").Cells(i, 1).Value Next End Sub

saki788
質問者

補足

ありがとうございました すぐに 出来ました。 本当に助かりました。 ありがとうございます。

その他の回答 (3)

  • Bloodhand
  • ベストアンサー率60% (18/30)
回答No.4

/3です。 >Dim NewWS As Worksheet これ、不要でした。

回答No.2

シート名一括変更する方法があります。原稿シートをSheet1(2)…のようにできると思いますが、 できたら、一括変更すればOKだと思います。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13116265383

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

同じような質問がありましたので参考までに。 http://okwave.jp/qa/q2025849.html

saki788
質問者

補足

ありがとうございます このやり方だと、既にA1から順番に店舗名が既に記載されていることもあって、 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub の場合、常にsheet1のA1に店舗名がないといけなくなります マクロでボタンという方法もあるのでしょうが、VBAの画面で一つひとつ記入していくというのも大変だと思っています。 別の方法がありましたら 教えてください。ありがとうございました お手数おかけします