シートをコピーして名前を変更する方法
スポンサーリンク
Excel VBA ではシートコピー時にコピー先のシートの名前を指定できません。その為、シートをコピーして追加した後に名前を変更するようにします。
次のサンプルコードでは、「テンプレート」という名前のシートをコピーして「2017年5月」という名前のシートを作成しています。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 | 'テンプレートという名前のシートをコピーして一番右に追加する。 ThisWorkbook.Sheets("テンプレート").Copy After:=Sheets(Sheets.Count) '追加したシートがActiveになっているので、ActiveSheetを通じて名前を設定する。 ActiveSheet.Name = "2017年5月" |
コピーして追加したシートに対して、名前変更以外にも色々な操作をする場合、 ActiveSheet を別の変数にセットしておけば、他のシートが Active になった後も操作することができます。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Dim objWorksheet As Worksheet 'テンプレートという名前のシートをコピーして一番右に追加する。 ThisWorkbook.Sheets("テンプレート").Copy After:=Sheets(Sheets.Count) 'ActiveSheetを別の変数にセットする。 'これによりActiveSheetが別のシートになってもコピーしたシートを操作することができる。 Set objWorksheet = ActiveSheet 'ActiveSheet を「テンプレート」という名前のシートに変更する。 ThisWorkbook.Sheets("テンプレート").Activate 'コピーして追加したシートはActiveではないが操作することができる。 objWorksheet.Name = "千葉県" objWorksheet.Range("C1") = "浦安市" |
スポンサーリンク