分かりやすく、使いやすく。

シートをコピーして名前を変更する方法

スポンサーリンク

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") = "浦安市" 
スポンサーリンク
スポンサーリンク