- ベストアンサー
Excel複数シートコピーのVBAで同時に名前も変更する方法はあるか?
- Excelのシートコピーを複数つくるVBAを探しています。Sheet1を10シートコピーする場合に方法はありますでしょうか?
- シートコピーのみでもよいので、教えていただけませんか?
- VBAを使用してExcelのシートを複数コピーする方法について、シート名も同時に変更することは可能でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
コピー元は「Sheet1」とし,複製は「test○○」のようだとすると sub macro1() dim i as long dim n as long dim w as worksheet ’既にあるシート名を付けようとしてエラーで止まらないようにすること for each w in worksheets if w.name like "test*" then n = application.max(n, val(mid(w.name,5,9))) end if next ’シートを複製して正しい名前を付けること for i=n + 1 to n + 10 worksheets("Sheet1").copy after:=worksheets(worksheets.count) activesheet.name = "test" & i next i end sub #デタラメをやっても動かないのは当然なので,ヘルプなどを良く読む習慣をまず身につける必要がありそうですね。
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
NO2です。 >Sheets("sheet1").Copy after:=Sheets(Sheets.Count), Count:=3 と作ったのですが動きませんでした ⇒VBAの学習不足です。 VBAの知識もなくVBAを始める事は無理があります。 先ずは、沢山あるVBA入門サイトか参考書の一つでも読破して下さい。 一例の入門サイトを添付しましたので一度ご確認下さい。
- mu2011
- ベストアンサー率38% (1910/4994)
>Excelのシートコピーを複数つくるVBAを探しています。 ⇒コードコピーから始まっても良いが、そのコードの意味を咀嚼しないと駄目です。 自分で作成してなんぼなのだから回答の丸映しはやめましょう。 ヒント例です。 Sheets("sheet1").Copy after:=Sheets(Sheets.Count) ‘シート1を最右端へコピー ActiveSheet.Name = "シート名" ’コピーシート名前の変更
お礼
いろいろとご指導ご鞭撻のほどよろしくお願いします 例えば、3シート追加する場合は Worksheets.Add After:=Worksheets("Sheet1"), Count:=3 ですよね 上記のヒントを利用して Sheets("sheet1").Copy after:=Sheets(Sheets.Count), Count:=3 と作ったのですが動きませんでした。 また、いろいろと勉強してみます。
初心者です。 m(_ _)m 流れだけですが、マクロ記録開始にしてシートタブを選択してコピーします。 1シートでも良いのですが、2~10シートコピーして、マクロを終了させます。 ○シフトキーを押しながら2枚目のシートをクリックするとその間のシートも全て選択 できます。 ○コントロールキーを押しながらシートを選択すると、複数のシートを選択できます。 ○右クリックで、【移動またはコピー】→【コピーの項目にチェックを入れる】→【OK】 で瞬時にシートがコピーされて増えます。 必要に応じてシート名を書き換えます。 記述をボタンに記録します。 次回からはマクロボタンをクリック下だけで、コピーされたシートがマクロで バンバンできます。 マクロにしなくても、○印だけでも相当早いです。
お礼
精進します ありがとうございます。