大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、シートを特定シートや、先頭、末尾にコピーしたい場合は、「before:=」や「after:=」を使って、シートを指定することでできます。新規ブックにコピーしたい場合は、「.Copy」で、複数シートをコピーの場合は、「配列」を使うという感じです。シートをコピーする方法をマスターしていきましょう。

はじめに

この記事では、シートをコピーする方法について、ご紹介します。

シートを、特定シートの前後や、先頭、末尾にコピーするには、「before:=」と「after:=」を使って、コピー先のシートを指定することでできます。

新規ブックにコピーする場合は、「.Copy」のみを入力することでできます。

複数シートをコピーしたい場合は、「配列」を使います。

シートのコピー方法について、マスターしていきましょう。

では、シートをコピーする方法について、解説していきます。

この記事を読むメリット

  • シートを自由自在にコピーすることができるようになります。

目次

シートをコピーする

シートをコピーしてみます。

次の箇所に、シートをコピーしてみます。

  • アクティブシートの左右
  • 特定シートの左右
  • 先頭と末尾
  • 新規ブック

では、それぞれやってみます。

アクティブシートの左側にコピー

アクティブシートの左側にコピーしてみます。

左側にコピーしたいので、「before:=」を使います。

Sub TEST1()
  
  'アクティブシートの左側にコピー
  ActiveSheet.Copy before:=ActiveSheet
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、アクティブシートの左側にコピーできます。

アクティブシートの左側にコピーできた

アクティブシートの左側にコピーしました

アクティブシートの左側にコピーできました。

アクティブシートの右側にコピー

アクティブシートの右側にコピーしてみます。

右側にコピーしたいので、「after:=」を使います。

Sub TEST2()
  
  'アクティブシートの右側にコピー
  ActiveSheet.Copy after:=ActiveSheet
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、アクティブシートの右側にコピーできます。

アクティブシートの右側にコピーできた

アクティブシートの右側にコピーしました

アクティブシートの右側にコピーできました。

特定シートの左にコピー

特定シートの左にコピーしてみます。

「befere:=」の後にシートを指定します。

Sub TEST3()
  
  'Bのシートの左側にコピー
  ActiveSheet.Copy before:=Sheets("B")
  
End Sub

元のシートです。

元シート

元のシートです

「B」のシートの左側にコピーできます。

Bのシートの左側にコピーできた

Bのシートの左側にコピーしました

「B」のシートの左側にコピーしました。

特定シートの右にコピー

特定シートの右にコピーしてみます。

「after:=」のところに、シートを指定します。

Sub TEST4()
  
  'Bのシートの右側にコピー
  ActiveSheet.Copy after:=Sheets("B")
  
End Sub

元のシートです。

元シート

元のシートです

「B」のシートの右側にコピーできます。

Bのシートの右側にコピーできた

Bのシートの右側にコピーしました

「B」のシートの右側にコピーできました。

先頭にコピー

先頭にコピーしてみます。

「before:=Sheets(1)」というように引数を入力します。

Sub TEST5()
  
  '先頭にコピー
  ActiveSheet.Copy before:=Sheets(1)
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、シートの先頭にコピーできます。

シートの先頭にコピーできた

シートの先頭にコピーしました

シートの先頭にコピーできました。

末尾にコピー

末尾にコピーしてみます。

「after:=Sheets(Sheets.Count)」というように、引数を入力します。

Sub TEST6()
  
  '末尾にコピー
  ActiveSheet.Copy after:=Sheets(Sheets.Count)
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、シートの末尾にコピーできます。

シートの末尾にコピーできた

シートの末尾にコピーしました

シートの末尾にコピーできました。

新規ブックにコピー

新規ブックにコピーしてみます。

引数を入力しないで、「.Copy」のみを入力します。

Sub TEST7()
  
  '新規ブックにコピー
  ActiveSheet.Copy
  
End Sub

実行すると、新規ブックにコピーできます。

新規ブックにコピーできた

新規ブックにコピーしました

新規ブックにコピーできました。

複数シートをコピー

複数シートをコピーするには、「配列」を使います。

配列を使う

配列を使って、複数シートをコピーしてみます。

Sub TEST8()
  
  '複数シートをコピー
  Sheets(Array("A", "B")).Copy after:=Sheets(Sheets.Count)
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、複数シートをコピーできます。

複数シートをコピーできた

複数シートをコピーしました

複数シートをコピーできました。

複数シートを新規ブックにコピー

複数シートを新規ブックにコピーしてみます。

新規ブックにコピーの場合は、引数を省略します。

Sub TEST9()
  
  '複数シートを新規ブックにコピー
  Sheets(Array("A", "B")).Copy
  
End Sub

実行すると、複数シートを、新規ブックにコピーできます。

複数シートを、新規ブックにコピーできた

複数シートを、新規ブックにコピーしました

複数シートを、新規ブックにコピーできました。

コピーして名前を変更

コピーして名前を変更してみます。

コピーしてアクティブシートの名前を変更する

コピーすると、コピーしたシートがアクティブになります。

なので、コピーした後に、アクティブシートの名前を変更すると、コピー先のシート名を変更できます。

Sub TEST10()
  
  'シートをコピー
  Sheets("B").Copy after:=Sheets(Sheets.Count)
  ActiveSheet.Name = "ABC" '新規シートの名前を変更
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、Bのシートをコピーして、アクティブシートの名前を変更できます。

シートコピーして名前を変更できた

Bのシートをコピーして、アクティブシートの名前を変更しました

Bのシートをコピーして、アクティブシートの名前を変更できました。

同じシートを複数作成する

同じシートを複数作成してみます。

シートコピーを繰り返す

シートコピーを繰り返すことで、同じシートを複数作成できます。

Sub TEST11()
  
  For i = 1 To 3
    'シートコピー
    Sheets("B").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = i '新規シートの名前を変更
  Next
  
End Sub

元のシートです。

元シート

元のシートです

実行すると、シートコピーを繰り返して、複数シートにコピーできます。

複数シートにコピーできた

シートコピーを繰り返して、複数シートにコピーできました

シートコピーを繰り返して、複数シートにコピーできました。

おわりに

この記事では、シートをコピーする方法について、ご紹介しました。

シートを、特定シートの前後や、先頭、末尾にコピーするには、「before:=」と「after:=」を使って、コピー先のシートを指定することでできます。

新規ブックにコピーする場合は、「.Copy」のみを入力することでできます。

複数シートをコピーしたい場合は、「配列」を使います。

シートのコピー方法について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す