大体でIT

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

大体でIT

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」を使って作業用シートを作成すると、元シートを変更せずに、データの編集ができます。

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

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

関連する記事から探す

カテゴリから探す

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

サイト内を検索する

↓キーワードを入力する

アーカイブから探す