シンプル・スマートな画面録画ソフト EaseUS RecExperts
Excel最新版が使える「Microsoft 365」を最安で購入するなら

2024/04/28時点のExcelの最新バージョン2403 17425.20176はMicrosoft 365にて利用可能です。

Microsoft 365は、現在『Amazonのオンラインコード版』が最安購入値となっています。
(Microsoft公式より1,490円お得)

Excelについて詳しく解説します

  • VBAで新しいシートを作成するにはどうすればいい?
  • やり方を簡単に説明してほしい
  • コピペで作業できるようにしてほしい

多くのExcel作業を自動化できるExcelVBAですが、基本的な作業は簡単にコピペで実現できるといいですよね。

そこで、この記事ではExcelVBAでの「新しいシートの作成」コードをコピペできるように紹介します。

 

この記事に掲載しているサンプルコードは、そのままコピペすることで利用可能です。

ご参考までに、それではどうぞ。

 
【新機能】わからないことはAIに聞いてみよう
質問内容を入力すると、皆さんの疑問にAIがお答えします。

※当機能は現在ベータ版です。 予告なく公開終了する場合があります。

新しいシートを作成する

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」に定義し、画像のように新しく作成したワークシートの名前を変更しています。

 
この記事で解決しなかった疑問は疑問はAIに聞いてみよう
質問内容を入力すると、皆さんの疑問にAIがお答えします。

※当機能は現在ベータ版です。 予告なく公開終了する場合があります。

Addメソッド実行時に名前を変更する

'Addメソッド実行と同時に名前を変更する
Worksheets.Add.Name = "新しいシート"

▼実行前

▼実行後

 

Addメソッドは、返り値としてワークシートオブジェクトを返すので、ワークシートオブジェクト同様に「Name」メソッドを使うことができます。

Addメソッド実行時に直接「Name」メソッドを使うことで、画像のように新しく作成したワークシートの名前を変更しています。

以上、コピペでできるExcelVBAでの新しいワークシート作成方法の紹介でした。

あわせて紹介した名前変更についてもコピペでできますので、試してみてください。