- VBAで新しいシートを作成するにはどうすればいい?
- やり方を簡単に説明してほしい
- コピペで作業できるようにしてほしい
多くのExcel作業を自動化できるExcelVBAですが、基本的な作業は簡単にコピペで実現できるといいですよね。
そこで、この記事ではExcelVBAでの「新しいシートの作成」コードをコピペできるように紹介します。
この記事に掲載しているサンプルコードは、そのままコピペすることで利用可能です。
ご参考までに、それではどうぞ。
目次
新しいシートを作成する
ExcelVBAでのシート作成では、シートがどの位置に作成するかを指定できます。
指定は必須ではなく、指定なしでも作成は可能です。
それぞれのコードと実行イメージを紹介します。
位置を指定しないでシート作成
'新しいシートを作成する(アクティブになっているシートの左側に作成) Worksheets.Add
「Worksheets.Add」を位置を指定せずに実行すると、画像のようにアクティブシートの左側に新しいシート(「Sheet〇〇」)が作成されます。
「Before」で位置を指定してシート作成
'「既存のシート」を「existSh」として定義 Dim existSh As Worksheet Set existSh = ThisWorkbook.Worksheets("既存のシート") '「existSh」の前(左側)に新しいシートを作成する Worksheets.Add Before:=existSh
「Worksheets.Add」をBeforeで位置を指定して実行すると、画像のように「Before」で指定した「既存のシート」の前(左側)に新しいシート(「Sheet〇〇」)が作成されます。
「After」で位置を指定してシート作成
'「既存のシート」を「existSh」として定義 Dim existSh As Worksheet Set existSh = ThisWorkbook.Worksheets("既存のシート") '「existSh」の後ろ(右側)に新しいシートを作成する Worksheets.Add After:=existSh
「Worksheets.Add」をAfterで位置を指定して実行すると、画像のように「After」で指定した「既存のシート」の後ろ(右側)に新しいシート(「Sheet〇〇」)が作成されます。
スポンサードリンク
作成したシートに名前をつける
新しくシートを作成した場合、作成したシートに名前をつけたいことも多いと思います。
作成したワークシートを取得すればいいのですが、これには3つの方法がありますので、順番に紹介します。
Addメソッド直後のアクティブ状態を利用して名前を変更する
Worksheets.Add 'Addメソッドは作成したワークシートをアクティブにするため「Activesheet」で取得 Dim newSh As Worksheet Set newSh = ActiveSheet newSh.Name = "新しいシート"
Addメソッドには、実行後に新しく作成されたワークシートをアクティブにする性質があります。
この性質を利用して、Addメソッド直後の「ActiveSheet」で新しく作成したワークシートを取得することができます。
ここでは、変数「newSh」に新しく作成されたワークシートを定義して、画像のように名前を変更しています。
Addメソッドの返り値を利用して名前を変更する
'変数「newSh」に新しく作成されるワークシートを定義 Dim newSh As Worksheet Set newSh = Worksheets.Add '変数「newSh」でワークシートを取得 newSh.Name = "新しいシート"
Addメソッドは、返り値としてワークシートオブジェクトを返します。
この返り値を変数「newSh」に定義し、画像のように新しく作成したワークシートの名前を変更しています。
※当機能は現在ベータ版です。 予告なく公開終了する場合があります。
Addメソッド実行時に名前を変更する
'Addメソッド実行と同時に名前を変更する Worksheets.Add.Name = "新しいシート"
Addメソッドは、返り値としてワークシートオブジェクトを返すので、ワークシートオブジェクト同様に「Name」メソッドを使うことができます。
Addメソッド実行時に直接「Name」メソッドを使うことで、画像のように新しく作成したワークシートの名前を変更しています。
以上、コピペでできるExcelVBAでの新しいワークシート作成方法の紹介でした。
あわせて紹介した名前変更についてもコピペでできますので、試してみてください。