大体でIT
大体でIT
Excel VBAで、シートを追加したい場合は「.Add」を使います。先頭や最後にシートを追加したい場合は、「before:=」や「after:=」を使ってシートを追加します。複数シートを追加したい場合は「count:=」か「.Add」をループするとできます。シートの追加方法について、マスターしていきましょう。
この記事では、シートを追加する方法について、ご紹介します。
「before:=」や「after:=」を使って、指定したシートの左側や右側にシートを追加することができます。
複数シートを追加したい場合は、「count:=」を使うか、「.Add」をループすることでできます。
追加したシートの名前を変更したい場合は、シートを追加した後に、アクティブシートの名前を変更するとできます。
「.Add」を使って作業用シートを作成すると、元シートを変更せずに、データの編集ができます。
シートの追加方法について、マスターしていきましょう。
では、シートを追加する方法について、解説していきます。
- 追加したい場所にシートを追加することができるようになります。
「before:=」や「after:=」を使うと、追加するシートを指定することができます。
複数シートを追加したい場合は、「count:=」か「.Add」をループします。
アクティブシートの左側に、シートを追加してみます。
Sub TEST1()
'アクティブシートの左側に追加
Sheets.Add before:=ActiveSheet
End Sub
左側に追加したい場合は、次のように引数を省略してもできます。
Sub TEST2()
'アクティブシートの左側に追加
Sheets.Add
End Sub
アクティブシートの左に追加
右側に追加したいので、「after:=」を使います。
Sub TEST3()
'アクティブシートの右側にシートを追加
Sheets.Add after:=ActiveSheet
End Sub
アクティブシートの右側に追加
Sub TEST4()
'先頭にシートを追加
Sheets.Add before:=Sheets(1)
End Sub
先頭にシートを追加
一番最後のシートの右側に追加する、という感じです。
Sub TEST5()
'末尾にシートを追加
Sheets.Add after:=Sheets(Sheets.Count)
End Sub
最後にシートを追加
Sub TEST6()
'複数シートを追加
Sheets.Add Count:=3
End Sub
Sub TEST7()
'ループして、複数シートを追加
For i = 1 To 3
Sheets.Add
Next
End Sub
ループする方法を使うと名前の変更がやりやすいので、名前を変更したり何か追加で操作したい場合は、ループする方法を使うといいです。
複数シートを追加
追加したシートの名前を変更する場合は、シートを追加した後に、アクティブシートの名前を変更する、という感じになります。
シートを追加すると、追加したシートがアクティブになりますので、アクティブシート名を変更します。
シートを追加して「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
複数シートを追加して、連番を付ける
複数シートを追加して、シート名を連番にできました。
シート追加する場面として、作業用シートを使う、というのがあります。
作業用シートを追加して、「昇順にソート」と「重複の削除」をやってみます。
- 作業用シートを追加
- 作業用シートに値を転記
- 作業用シートで値を昇順にソート
- 作業用シートの値を元シートに転記
- 作業用シートを削除
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
作業用シートを使って、昇順にソート
これで、作業用シートを使って、昇順にソートできます。
作業用シートを使って、昇順にソートできた
作業用シートを使って重複を削除する、というのをやってみます。
- 作業用シートを追加
- 作業用シートに値を転記
- 作業用シートの重複を削除
- 作業用シートの値を元シートに転記
- 作業用シートを削除
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コードを実行してみます。
作業用シートを使って、重複を削除
作業用シートを使って、重複を削除できた
作業用シートを使えば、元シートを変更することなくデータを編集することができます。
元シートを変更したくない場合は、作業用シートを使ってみましょう。
この記事では、シートを追加する方法について、ご紹介しました。
「before:=」や「after:=」を使って、指定したシートの左側や右側にシートを追加することができます。
複数シートを追加したい場合は、「count:=」を使うか、「.Add」をループすることでできます。
追加したシートの名前を変更したい場合は、シートを追加した後に、アクティブシートの名前を変更するとできます。
「.Add」を使って作業用シートを作成すると、元シートを変更せずに、データの編集ができます。
シートの追加方法について、マスターしていきましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。