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 エディターで次の手順に従って、新しいシートを挿入します。
- まず、VBA で Sheets を入力する必要があります。
- Add メソッドを使用します。
- 次に、VBA を使用して、新しいシートを配置する場所 (前または後) を決定する必要があります。
- 次のステップは、VBA を使用して Excel にワークシートの総数を入力することです。
- 最後に、シートのタイプを入力します。
上で説明した手順を使用して、新しいシートを追加する関数を作成しましょう。
コード:
# vba
Sub CreateNewSheet()
Sheets.Add After:=Worksheets("Sheet2"), Count:=3, Type:=xlWorksheet
End Sub
出力:
新しいシートをワークブックに挿入するには、さまざまな方法を使用します。 ワークブックにシートを追加するいくつかの方法を次に示します。
VBA で単一シートを追加する
以下のコードを使用して、引数を指定せずに 1つのシートを追加できます。
コード:
# vba
Sub AddSingleSheet()
ActiveWorkbook.Sheets.Add
End Sub
出力:
このコードは、アクティブなブックにシートを追加するように Excel に指示します。 ただし、引数が指定されていないため、アクティブなシートの前に 1つのワークシート (Microsoft Excel シート) を追加するために既定値が使用されます。
これは別の書き方です。
コード:
# vba
Sub AddSingleSheetWithoutActiveWorkbook()
Sheets.Add
End Sub
出力:
VBA に複数のシートを挿入する
一度に多くのシートを追加するには、COUNT
オプションで追加するシートの数を指定します。
コード:
# vba
Sub AddMultipleSheets()
Sheets.Add Count:=2
End Sub
出力:
VBAでタイトル付きのシートを挿入する
シートを追加したら、次のコードを入力してシートの名前を変更できます。
コード:
# vba
Sub AddSheetWithTitle()
Sheets.Add.Name = "New Sheet"
End Sub
出力:
VBAでセルの名前で新しいシートを作成する
セルを利用してシート名の値を取得することもできます。
コード:
# vba
Sub AddSheetWithCellName()
Sheets.Add.Name = Range("B1")
End Sub
出力:
Excel では、セル A1 が上記のコードに適用され、新しいシートの名前が取得されます。
VBAで開始時に新しいシートを追加
上記の引数を適用して、ワークブックのシートの先頭にシートを挿入することもできます。
コード:
# vba
Sub BeginByNewSheet()
Sheets.Add Before:=Sheets(1)
End Sub
出力:
シート名を指定する代わりに、シート番号を指定します。 上記のコードでシート番号 (1) を使用して、すべてのワークシートの最初のシートの直前にシートを追加するように VBA に指示しました。
これにより、新しいシートが常に最初に追加されます。
VBAで最後に新しいシートを追加
上記のコードを書き直して、最後に新しいシートを追加する必要があります。
コード:
# vba
Sub AddSheetAtEnd()
Sheets.Add After:=Sheets(Sheets.Count)
End Sub
出力:
最後に新しいシートを追加するには、ワークブックにシートがいくつあるかを知る必要があります。