HOWTO · VBA

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

このチュートリアルでは、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で最後に新しいシートを追加

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