エクセルVBAで複数シートを選択してコピーする!シート名を指定

エクセルで複数のシートをコピーする時、1つ1つコピーするのは面倒です。シートが沢山あると、時間もかかります。いつもコピーするシートが決まっているなら、エクセルVBAを使うと簡単にシートをコピーできます。ここでは、エクセルVBAで、複数シートをシート名を指定してコピーする方法を紹介しています。挿入する位置も指定できるので、シートが沢山ある場合には、挿入する位置を探すこともなく一発で挿入できるので、間違えがありません。複数のシートを選択して、同じブックに、または別のブックにも挿入できます。シートの選択にシート名を指定して、色々なパターンのコピー方法を紹介しています。

 

 

同じファイルに複数シートをシート名を指定してコピー

エクセルVBAで、同ファイルに複数シートを選択してコピーします。シート名と挿入する位置を指定して、コピーしましょう。

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

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

 

 

複数シートを選択して指定した位置にコピーする

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

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

Sub 同ブックのシート後ろにコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy After:=Worksheets(“Sheet3”)
End Sub

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

Sub 同ブックのシート前にコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy Before:=Worksheets(“Sheet3”)
End Sub

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

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

Sub 同ブックのシート先頭にコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy Before:=Worksheets(1)
End Sub

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

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

Sub 同ブックのシート末尾にコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy After:=Worksheets(Worksheets.Count)
End Sub

 

 

別ファイルに複数シートをシート名を指定してコピー

エクセルVBAで、別ファイルに複数シートを選択してコピーします。シート名と挿入する位置を指定して、コピーしましょう。

別ブックにシートをコピーする場合は、別ブックは必ず開いている必要があります。

別のファイルに複数シートを選択して指定した位置にコピーする

Sheet1 とSheet2 を、別ブックのSheet3 後ろ、前にコピー

Sheet1 と Sheet2 を、別ブック「Book3」の Sheet3 の後ろにコピーするコードです。

Sub 別ブックSheet3の後ろにコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy After:=Workbooks(“Book3”).Sheets(“Sheet3”)
End Sub

ファイル名が、「売上一覧表.xls」の場合は、次のようになります。

Sub 売上一覧表、Sheet3の後ろにコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy After:=Workbooks(“売上一覧表.xls”).Sheets(“Sheet3”)
End Sub

Sheet1 と Sheet2 を 、別ブック「Book3」の Sheet3 の前に、コピーするコードです。

Sub 別ブックSheet3の前にコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy Before:=Workbooks(“Book3”).Sheets(“Sheet2”)
End Sub

Sheet1とSheet2 を別ブックの先頭の位置にコピーする

Sheet1 と Sheet2 を、Book3の先頭の位置に挿入するコードです。

Sub 別ブックのシート先頭にコピー()
Worksheets(Array(“Sheet1”, “Sheet2”)).Copy Before:=Workbooks(“Book3”).Sheets(1)
End Sub

Sheet1とSheet2 を別ブックの末尾の位置にコピーする

Sheet1 と Sheet2 を、Book3の末尾の位置に挿入するコードです。

Sub 別ブックのシート末尾にコピー()
Sheets(Array(“Sheet1”, “Sheet2”)).Copy After:=Workbooks(“Book3”).Sheets(Worksheets.Count)
End Sub

 

 

新規ブックに複数シートをシート名を指定してコピー

エクセルVBAで、新規ブックに複数シートをコピーしましょう。

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

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

新しいブックにSheet1 と Sheet2をコピーするコードです。

Sub 複数シートのコピー()
Sheets(Array(“Sheet1”, “Sheet2”)).Copy
End Sub

複数シートの選択

エクセルVBAを使って複数シートを選択してコピーする方法で、定例の作業を効率よく行うことができます。シートのコピーは簡単ですが、複数のシートが多ければ多いほど、時間もかかります。似たようなシート名があった場合、間違えて別なシートをコピーしてしまったことはないでしょうか。エクセルVBAだと、そんな失敗もありません。シート名や挿入する位置を指定して挿入したり、同じブック、または別なブックにもコピーできるので、時間を短縮し、効率よく仕事ができるようになります。

こちらの記事もご覧ください。⇒エクセルVBAで複数シートをコピーして1つのシートにまとめる方法!