VBA で新しい Excel シートを作成する

Iqra Hasnain 2024年2月15日
  1. VBA で新しい Excel シートを作成する
  2. Sheets.Add() メソッドを使用して VBA でシートを追加する
VBA で新しい Excel シートを作成する

VBAでエクセルシートを新規作成する方法を例を挙げて紹介します。

VBA で新しい Excel シートを作成する

ワークブックに新しいワークシートを挿入するための VBA コードを記述することは、VBA の学習を開始したときにできる最も賢いことの 1つです。 新しいワークシートを挿入するためのショートカット キー、または標準のオプションを使用できますが、VBA コードを使用する利点は、クリックで複数のワークシートを追加し、それらを追加する場所を指定できることです。

これにはスプレッドシートを使用する必要があります。 この記事では、追加手法を適用して 1つ以上のワークシートをブックに追加する方法を学習します。

Sheets.Add() メソッドを使用して VBA でシートを追加する

before メソッドを使用して、既存のシートの前に新しいシートを追加できます。 after メソッドを使用して、既存のシートの後に別のシートを追加します。

追加されたシートは、count メソッドを使用してカウントする必要があります。 type メソッドを使用してシート タイプを追加します。

Sheets.Add() の構文を使用できます。

# vba
Sheets.Add ([Before], [After], [Count], [Type])

以下に示すように、VBA エディターで次の手順に従って、新しいシートを挿入します。

  1. まず、VBA で Sheets を入力する必要があります。
  2. Add メソッドを使用します。
  3. 次に、VBA を使用して、新しいシートを配置する場所 (前または後) を決定する必要があります。
  4. 次のステップは、VBA を使用して Excel にワークシートの総数を入力することです。
  5. 最後に、シートのタイプを入力します。

上で説明した手順を使用して、新しいシートを追加する関数を作成しましょう。

コード:

# vba
Sub CreateNewSheet()
Sheets.Add After:=Worksheets("Sheet2"), Count:=3, Type:=xlWorksheet
End Sub

出力:

VBA の add 関数を使用して複数のシートを作成

新しいシートをワークブックに挿入するには、さまざまな方法を使用します。 ワークブックにシートを追加するいくつかの方法を次に示します。

VBA で単一シートを追加する

以下のコードを使用して、引数を指定せずに 1つのシートを追加できます。

コード:

# vba
Sub AddSingleSheet()
ActiveWorkbook.Sheets.Add
End Sub

出力:

VBA で add 関数を使用して単一シートを作成する

このコードは、アクティブなブックにシートを追加するように Excel に指示します。 ただし、引数が指定されていないため、アクティブなシートの前に 1つのワークシート (Microsoft Excel シート) を追加するために既定値が使用されます。

これは別の書き方です。

コード:

# vba
Sub AddSingleSheetWithoutActiveWorkbook()
Sheets.Add
End Sub

出力:

VBA で add 関数を使用して単一シートを作成する 2 番目の例

VBA に複数のシートを挿入する

一度に多くのシートを追加するには、COUNT オプションで追加するシートの数を指定します。

コード:

# vba
Sub AddMultipleSheets()
Sheets.Add Count:=2
End Sub

出力:

VBAでadd関数例2を使って複数シートを作成

VBAでタイトル付きのシートを挿入する

シートを追加したら、次のコードを入力してシートの名前を変更できます。

コード:

# vba
Sub AddSheetWithTitle()
Sheets.Add.Name = "New Sheet"
End Sub

出力:

vba でタイトルを付けて新しいシートを作成

VBAでセルの名前で新しいシートを作成する

セルを利用してシート名の値を取得することもできます。

コード:

# vba
Sub AddSheetWithCellName()
Sheets.Add.Name = Range("B1")
End Sub

出力:

vba でセル名を含むシートを作成

Excel では、セル A1 が上記のコードに適用され、新しいシートの名前が取得されます。

VBAで開始時に新しいシートを追加

上記の引数を適用して、ワークブックのシートの先頭にシートを挿入することもできます。

コード:

# vba
Sub BeginByNewSheet()
Sheets.Add Before:=Sheets(1)
End Sub

出力:

vbaで先頭に新しいシートを追加

シート名を指定する代わりに、シート番号を指定します。 上記のコードでシート番号 (1) を使用して、すべてのワークシートの最初のシートの直前にシートを追加するように VBA に指示しました。

これにより、新しいシートが常に最初に追加されます。

VBAで最後に新しいシートを追加

上記のコードを書き直して、最後に新しいシートを追加する必要があります。

コード:

# vba
Sub AddSheetAtEnd()
Sheets.Add After:=Sheets(Sheets.Count)
End Sub

出力:

vbaで最後に新しいシートを追加

最後に新しいシートを追加するには、ワークブックにシートがいくつあるかを知る必要があります。

関連記事 - VBA Excel