エクセルVBAでシートのコピー! 位置や名前を指定

エクセルでシートをコピーしたいという時、定期的に同じシートをコピーしなければいけない! シートの左端、右端、またはAシートの後ろの位置に、コピーしたシートを挿入したい!といった場合、ファイルにシートが沢山あると、指定した位置にコピーしたシートを挿入するのは大変です。そのような時に一発で、エクセルVBAで、シートをコピーすることができます。エクセルVBAで、シートをコピーする時は、Copy メソッドを使います。Copy メソッドに引数を設定して、指定した位置にシートをコピーすることができます。シートは全シートをコピーすることもできます。ここではシートの操作でよく使われる、エクセルVBAを紹介しています。VBAでシートを簡単に、一発で指定した位置にコピーしてみましょう。定期的に行う作業が、らくらくできます!

 

 

シートをコピーする

エクセルVBAでシートをコピーする場合、Copy メソッドを使います。

Copy メソッドの構文

オブジェクト.Copy(Before, After)

Copy メソッドは、引数 Before、Afterを設定して、ワークシートを指定した場所にコピーすることができます。

引数を指定しなかった場合は、シートは新規のブックにコピーされます。

 

 

シートを指定した位置にコピーする

エクセルVBAで、コピーしたシートを先頭の位置、末尾、Aシートの前、または後ろに挿入しましょう。

Sheet1 を Sheet2 の前の位置、または後にコピー

Sheet1 を Sheet2 の前の位置、または後ろにコピーしましょう。

同じシート名がある場合には、挿入されるシートは、シート名の後ろに、XXXX(2) と (2) が付きます。

Sheet1 をコピーすると、挿入されるシート名は Sheet1 (2) です。

Sheet1 を Sheet2 の後ろに、コピーするコードです。

Sub シートの後ろにコピー()
Worksheets(“Sheet1”).Copy After:=Worksheets(“Sheet2”)
End Sub

シート名「1月売上」を、シート名「8月売上」の後ろにコピーする場合は、次のようになります。

シート名「1月売上 (2)」が、シート名「8月売上」の後ろに挿入されます!

Sub シートの後ろにコピー()
Worksheets(“1月売上”).Copy After:=Worksheets(“8月売上”)
End Sub

Sheet1 を Sheet2 の前に、コピーするコードです。

Sub シートの前にコピー()
Worksheets(“Sheet1”).Copy Before:=Worksheets(“Sheet2”)
End Sub

 

 

Sheet1 を先頭の位置にコピーする

Sheet1 を、ワークシートの先頭の位置に挿入するコードです。

Sub シートの先頭にコピー()
Worksheets(“Sheet1”).Copy Before:=Worksheets(1)
End Sub

Sheet1 を末尾の位置にコピーする

Sheet1 を、ワークシートの末尾の位置に挿入するコードです。

Sub シートの末尾にコピー()
Worksheets(“Sheet1”).Copy After:=Worksheets(Worksheets.Count)
End Sub

Sheet1 を、ボタンをクリックして、ワークシートの末尾の位置に挿入するコードです

Private Sub CommandButton1_Click()
Worksheets(“Sheet1”).Copy After:=Worksheets(Worksheets.Count)
End Sub

シートに名前を付けてコピーする

シートに「住所録」と、名前を付けてコピーする時のコードです。

Sub シート住所録のコピー()
Worksheets(“Sheet1”).Copy After:=Worksheets(“Sheet2”)
ActiveSheet.Name = “住所録”
End Sub

シート名「住所録」が、Sheet2 の後ろにコピーされました!

 

 

全シートをコピーする

エクセルVBAで、ファイルの全シートをコピーしましょう。

ファイルの全シートを指定した位置にコピー

Copy メソッドは、全シートを指定した位置にコピーすることができます。

同じブックの右端にコピー

Sub ブックの右端にコピー()
ThisWorkbook.Sheets().Copy After:=Sheets(Sheets.Count)
End Sub

同じブックの左端にコピー

Sub ブックの左端にコピー()
ThisWorkbook.Sheets().Copy Before:=Sheets(1)
End Sub

新しいブックにシート全てコピーする

Sub 全シートを新規ブックにコピー()
ThisWorkbook.Sheets.Copy
End Sub

シートの操作

Copy メソッドに引数 Before、Afterを設定して、指定した位置にワークシートをコピーすることができます。エクセルVBAで、シートをコピーすると、定例のシートのコピーが簡単にできるようになります。面倒な作業が一発でできるので、誤って別なシートをコピーしたり、シートを挿入する位置を間違えた!といったミスを防げます。ここで紹介したVBAは、即、使えるコードです。ぜひお試しください。

こちらの記事もご覧ください。⇒エクセルVBAでワークシートを表示、非表示にする!