• ベストアンサー

エクセルのシートのコピーについて

お願いします。教えてください。 エクセルのシートを同じブック内に100シート以上コピーするにはどうしたらいいでしょうか? 1シートづつなら出来るのですが、複数する方法がわかりません。 それと、そのコピーしたシートの名前をNo.1・2・3・・・と番号を自動で付けることできませんか? エクセル2000です。 よろしくご伝授ください。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

マクロだと簡単です。 No.1 というシート名のシートが1枚だけあるブックとして Sub sheetcopy() Dim i As Integer For i = 2 To 100  Worksheets("No.1").Copy after:=Worksheets(Worksheets.Count)  ActiveSheet.Name = "No." & i Next i End Sub で出来ます。 エラー処理をしてないので、2回実行した場合や No.2~100 というシート名が既にあるとエラーになります。

moan
質問者

お礼

か、感動です! 初めてマクロを使ってみました! あんなに悩んだ事が、一瞬のうちに出来ました! うれしいです。ありがとうございました!

その他の回答 (4)

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.5

#2です。 >#4さん。 おお、ホントだ。さすが。 説明不足でした。 #2では一番最初に「シート」という名前のシートのみにしておかないといけません。 デフォルトで作られている「sheet2」「sheet3」は削除しておいてください。

moan
質問者

お礼

ありがとうございます。 この方法も、今試してみました。上手く出来ました! マクロは感動的ですが、明日会社で作成するとなると、自信がない・・・デス。 私にはこの方法があっているかも。。。。?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#1、#2の回答を救う方法。 (1)下記の’Aの3行を削除して実行する。 名前がN01・・・NO100になります。 (2)#3とは少し違う別回答は、下記の’Aの3行を活かして実行してください。 Sub test02() For i = 1 To 100 'A Worksheets.Add 'A Next i 'A Dim sh As Worksheet i = 1 For Each sh In Worksheets sh.Name = "no" & i i = i + 1 Next End Sub 注意事項は、#3のご回答の終わりに記されたとおりです。

moan
質問者

お礼

ありがとうございます! マクロ、使った事無かったので、いろいろ試していました。 でも、マクロを知ると、感動物です! あ!という間に希望のシートが完成しました! うれしいです!

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

1回目シート名「シート」をコピー 2回目出来上がった「シート(2)」をコピー 3回目出来上がった「シート(3)」とさっきの「シート(2)」をいっしょに選択してコピー こうするとシート名が連番になります。 9回目にシート(100)を超えるはず・・・ マクロなら、識者にお任せします。

moan
質問者

補足

回答ありがとうございます。 今試みてたのですが・・・ 3回目のシート(3)とシート(2)をいっしょに選択してコピーですが、うまく連番になりません。 シート4(2)シート5(2)になってしまいます。 シートの2つを選択してコピーの方法をもう一度教えてくれませんか?

  • shy00
  • ベストアンサー率34% (2081/5977)
回答No.1

シートのタブとCtrlキーを押しつつドラッグ そうするとシートごとコピー出来ます また、数枚コピー出来たら、複数シートを選択し、Ctrlキーと一緒にドラッグ これで、少しは早くコピー可能です シート名は・・・No.(1)であれば、連続してくれるんですが・・・

moan
質問者

お礼

ありがとうございます。 一度試してみます。

関連するQ&A