【VBA】シートの追加方法まとめ【名前変更、先頭や最後、複数シートの追加をする】

Excel VBAで、シートを追加したい場合は「.Add」を使います。先頭や最後にシートを追加したい場合は、「before:=」や「after:=」を使ってシートを追加します。複数シートを追加したい場合は「count:=」か「.Add」をループするとできます。シートの追加方法について、マスターしていきましょう。
はじめに
この記事では、シートを追加する方法について、ご紹介します。
シートを追加するには、「.Add」を使います。
「before:=」や「after:=」を使って、指定したシートの左側や右側にシートを追加することができます。
複数シートを追加したい場合は、「count:=」を使うか、「.Add」をループすることでできます。
追加したシートの名前を変更したい場合は、シートを追加した後に、アクティブシートの名前を変更するとできます。
「.Add」を使って作業用シートを作成すると、元シートを変更せずに、データの編集ができます。
シートの追加方法について、マスターしていきましょう。
では、シートを追加する方法について、解説していきます。
この記事を読むメリット
- 追加したい場所にシートを追加することができるようになります。
目次
シートの追加
シートを追加するには、「.Add」を使います。
「before:=」や「after:=」を使うと、追加するシートを指定することができます。
複数シートを追加したい場合は、「count:=」か「.Add」をループします。
では、それぞれやってみます。
アクティブシートの左側に追加
アクティブシートの左側に、シートを追加してみます。
左側のなので、「before:=」を使います。
Sub TEST1()
'アクティブシートの左側に追加
Sheets.Add before:=ActiveSheet
End Sub
左側に追加したい場合は、次のように引数を省略してもできます。
Sub TEST2()
'アクティブシートの左側に追加
Sheets.Add
End Sub
では、実行してみます。
アクティブシートの左に追加
アクティブシートの左側にシートを追加してみます。

実行してみます。

アクティブシートの左側にシートを追加できました。
アクティブシートの右側に追加
アクティブシートの右側に追加してみます。
右側に追加したいので、「after:=」を使います。
Sub TEST3()
'アクティブシートの右側にシートを追加
Sheets.Add after:=ActiveSheet
End Sub
では、実行してみます。
アクティブシートの右側に追加
アクティブシートの右側にシートを追加してみます。

実行してみます。

アクティブシートを右側にシートを追加できました。
先頭に追加
先頭に、シートを追加してみます。
1番目のシートの左側に追加する、という感じです。
Sub TEST4()
'先頭にシートを追加
Sheets.Add before:=Sheets(1)
End Sub
では、実行してみます。
先頭にシートを追加
先頭にシートを追加してみます。

実行してみます。

先頭にシートを追加できました。
最後に追加
最後に、シートを追加してみます。
一番最後のシートの右側に追加する、という感じです。
Sub TEST5()
'末尾にシートを追加
Sheets.Add after:=Sheets(Sheets.Count)
End Sub
では、実行してみます。
最後にシートを追加
最後にシートを追加してみます。

実行してみます。

最後にシートを追加できました。
複数シートの追加
複数のシートを追加してみます。
引数に「count:=」を入力します。
Sub TEST6()
'複数シートを追加
Sheets.Add Count:=3
End Sub
もしくは、次のように「.Add」をループします。
Sub TEST7()
'ループして、複数シートを追加
For i = 1 To 3
Sheets.Add
Next
End Sub
ループする方法を使うと名前の変更がやりやすいので、名前を変更したり何か追加で操作したい場合は、ループする方法を使うといいです。
では、実行してみます。
複数シートを追加
複数シートを追加してみます。

実行してみます。

複数シートを追加できました。
シートを追加して名前を変更
シートを追加して名前を変更してみます。
追加したシートの名前を変更する場合は、シートを追加した後に、アクティブシートの名前を変更する、という感じになります。
シートを追加すると、追加したシートがアクティブになりますので、アクティブシート名を変更します。
シートを追加して「Name」で名前変更
シートを追加して「Name」で名前を変更してみます。
Sub TEST8() Sheets.Add 'シートを追加 ActiveSheet.Name = "ABC" '名前を変更 End Sub
では、実行してみます。
シートを追加して、名前を変更
シートを追加して、名前を変更してみます。

実行してみます。

シートを追加して、名前を変更できました。
最後にシートを追加して名前を変更
最後にシートを追加して、名前を変更してみます。
名前の変更は、先ほどと同じようにアクティブシートの名前を変更します。
Sub TEST9() '最後にシートを追加 Sheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = "ABC" '名前を変更 End Sub
では、実行してみます。
最後にシートを追加して、名前を変更
最後にシートを追加して、名前を変更してみます。

実行してみます。

最後にシートを追加して、名前を変更できました。
複数シートを追加して連番を付ける
複数シートを追加して、シート名を連番にしてみます。
シートの追加と名前変更をループすることでできます。
Sub TEST10() For i = 1 To 3 '最後にシートを追加 Sheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = i '名前を付ける Next End Sub
では、実行してみます。
複数シートを追加して、連番を付ける
複数シートを追加して、連番を付けてみます。

実行してみます。

複数シートを追加して、シート名を連番にできました。
作業用シートを追加してデータを操作
シート追加する場面として、作業用シートを使う、というのがあります。
作業用シートを追加して、「昇順にソート」と「重複の削除」をやってみます。
作業用シートでデータを昇順にする
作業用シートで、データを昇順にソートしてみます。
手順としては、
- 作業用シートを追加
- 作業用シートに値を転記
- 作業用シートで値を昇順にソート
- 作業用シートの値を元シートに転記
- 作業用シートを削除
という感じです。
VBAコードは、次のようになります。
Sub TEST11() 'シートを追加 Sheets.Add '作業用シートに、値を転記 ActiveSheet.Next.Range("A1").CurrentRegion.Copy Range("A1") '昇順にソート Range("A1").Sort Range("A1"), xlAscending, Header:=xlYes '元シートに、値を転記 Range("A1").CurrentRegion.Copy ActiveSheet.Next.Range("D1") Application.DisplayAlerts = False 'メッセージを非表示 '作業用シートを削除 ActiveSheet.Delete Application.DisplayAlerts = True 'メッセージを表示 End Sub
では、ポイントごとに実行してみます。
作業用シートを使って、昇順にソート
作業用シートをデータを昇順にソートしてみます。

作業用のシートを追加します。

値を転記します。

作業用シートで、値を昇順にソートします。

元のシートに値を転記します。

作業用シートを削除します。

これで、作業用シートを使って、昇順にソートできます。
作業用シートを使って、昇順にソートできた

作業用シートを使って、昇順にソートできました。
作業用シートで重複を削除
作業用シートを使って重複を削除する、というのをやってみます。
手順としては、次のようになります。
- 作業用シートを追加
- 作業用シートに値を転記
- 作業用シートの重複を削除
- 作業用シートの値を元シートに転記
- 作業用シートを削除
という感じです。
VBAコードは、次のようになります。
Sub TEST12() 'シートを追加 Sheets.Add '作業用シートに、値を転記 ActiveSheet.Next.Range("A1").CurrentRegion.Copy Range("A1") '重複を削除 Range("A1").RemoveDuplicates 1, xlYes '元シートに、値を転記 Range("A1").CurrentRegion.Copy ActiveSheet.Next.Range("D1") Application.DisplayAlerts = False 'メッセージを非表示 '作業用シートを削除 ActiveSheet.Delete Application.DisplayAlerts = True 'メッセージを表示 End Sub
では、ポイントごとにVBAコードを実行してみます。
作業用シートを使って、重複を削除
作業用シートを使って、重複を削除してみます。

作業用のシートを追加します。

作業用シートに値を転記します。

重複を削除します。

元シートに値を転記します。

作業用シートを削除します。

これで、作業用シートを使って、値を削除できます。
作業用シートを使って、重複を削除できた

作業用シートを使って、値を削除できました。
作業用シートを使えば、元シートを変更することなくデータを編集することができます。
元シートを変更したくない場合は、作業用シートを使ってみましょう。
おわりに
この記事では、シートを追加する方法について、ご紹介しました。
シートを追加するには、「.Add」を使います。
「before:=」や「after:=」を使って、指定したシートの左側や右側にシートを追加することができます。
複数シートを追加したい場合は、「count:=」を使うか、「.Add」をループすることでできます。
追加したシートの名前を変更したい場合は、シートを追加した後に、アクティブシートの名前を変更するとできます。
「.Add」を使って作業用シートを作成すると、元シートを変更せずに、データの編集ができます。
シートの追加方法について、マスターしていきましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。
関連する記事から探す