【エクセル】複数のワークシートを一括でまとめて挿入し名前を自動入力する方法を紹介

Microsoft Excel(エクセル)で複数のワークシートを挿入する必要がある時、1シートずつ挿入して名前を変更するのは時間がかかってしまいます。

例えば、各月分の12シートや、各日数分の30シートなど大量の複数シートが必要だったりする場合です。

こんな時は、一括でワークシートを挿入し名前も自動入力させるテクニックが存在します。

この記事では、上記操作に関して、マクロ/VBAを使わない方法と、マクロ/VBAを使う方法の2つをそれぞれ紹介します。

マクロ/VBAを使う方法は、特定のVBAコードを貼り付けるだけで誰でも簡単に利用できるので、どちらも知っていて損はありません。

それでは、どうぞご覧ください。

複数のワークシートを一括で挿入し名前を自動入力する方法

まずは、マクロ/VBAを使わずに、複数のワークシートを一括で挿入し名前を自動入力する方法を紹介します。

Worksheetの挿入は、表のデータを集計することのできる『ピボットテーブル』機能を利用します。

後は、複数のボタン操作を行うだけで完了するので、ピボットテーブルって何?という人でも簡単にシートを作成することができます。

👇ピボットテーブルの使い方を基本操作から詳しく知りたい人は以下を参考にしてください。

ピボットテーブルの「フィルターページの表示」を利用

エクセルのピボットテーブルは、膨大なデータを簡単に分析や集計するときに大いに役立つ便利機能です。

しかし、今回はデータの集計用に利用しません。

「ピボットテーブル分析」タブの「オプション」の中にある「レポートフィルターページの表示」ボタンを活用して、大量の複数シートを一瞬で作成します。

複数シートを作成する「レポートフィルターページの表示」ボタン
複数シートを作成する「レポートフィルターページの表示」ボタン

ピボットテーブルで複数シートを一括で挿入する手順

それでは実際に、ピボットテーブルで複数シートを一括で挿入&名前入力する手順を紹介します。

ピボットテーブルという名前に物怖じするほどの作業はありませんので、安心して操作してください。

手順1.シート名をセルに書き出す

まず、作成したい複数シートの名前を縦方向に列挙し、セルに入力します。

作成出来るシート数は、パソコンの使用可能メモリに依存するので正確な数は決まっていませんが、基本的に実務で使う程度のシート数であれば問題なく作成できます。

手順1.ワークシート名を入力
手順1.ワークシート名を入力

手順2.ピボットテーブルを挿入

手順1で作成したセル範囲であればどのセルでもいいので選択してから、「挿入」タブの「ピボットテーブル」をクリックします。

手順2.挿入タブのピボットテーブルを選択
手順2.挿入タブのピボットテーブルを選択

手順3.ピボットテーブルを挿入

そうすると、下のような「ピボットテーブルの作成」画面が表示されますので、元データのデータ範囲が正しか確認し、「OK」をクリックします。この操作でピボットテーブルのための新しいワークシートが自動で作成されます。

手順3.ピボットテーブルのセル範囲を確定
手順3.ピボットテーブルのセル範囲を確定

手順4.作業フィールドを操作

そうすると、画面右端にピボットテーブルの作業フィールドが表示されます。

作業フィールドに、元データの列項目名が表示されているので、この項目をフィールド下に配置されている「フィルター」カテゴリにドラッグ&ドロップします。

手順4.作業フィールド画面でフィルターにドラッグ
手順4.作業フィールド画面でフィルターにドラッグ

手順5.フィルターページの表示を選択

A1セルかB1セルをクリックすると「ピボットテーブル分析」タブが表示されるので、「ピボットテーブル」⇒「オプション」⇒「レポートフィルターページの表示」をクリックします。

手順5.レポートフィルターページの表示を選択
手順5.レポートフィルターページの表示を選択

「レポートフィルターページの表示」画面が表示されるので、そのまま「OK」を押してください。

手順6.複数のワークシートが瞬時に作成

そうすると、一瞬で複数のワークシートが名前付きで作成されます。シートの並び順は、平仮名のあいうえお順で左側から表示されます。

手順6.複数のワークシートが完成
手順6.複数のワークシートが完成

手順7.複数のワークシートを選択

A1セルとB1セルにピボットテーブルの機能が残っているので削除する必要があります。作成された一番左のシートを選択してから、一番右のシートを「Shift」キーを押しながらクリックして全シートを選択します。

手順7.複数のワークシートを選択
手順7.複数のワークシートを選択

手順8.セルの文字を削除

後は、何も入力されていないセルを「Ctrl+C」キーでコピーして、A1,B1セル周辺のセルに「Ctrl+V」キーで貼り付けして、ピボットテーブルの機能が挿入されたセルのデータを削除します。

手順8.複数シートの文字を一括で削除
手順8.複数シートの文字を一括で削除

手順9.複数シートの完成

以上の作業で、セルに何も入力されていない新規の複数のワークシートが完成します。必要に応じてピボットテーブルを挿入した時に作成された「Sheet1」シートは削除してください。

手順9.未入力の複数シートが完成
手順9.未入力の複数シートが完成

複数シートを並び順を調整したい場合の対処方法

上記で紹介したとおり、シート名が漢字やひらがなの場合は、あいうえお順で左側からシートが作成されます。

複数シートの並び順を調整したい場合は、シート名の先頭に数値を入れます。

&演算子やCONCAT関数を挿入し、「大阪店」を「1.大阪店」という名前に変更します。

=CONCAT(B2,".",C2)

シート名の先頭に数値を挿入
シート名の先頭に数値を挿入

文字を結合する方法を詳しく知りたい方は、以下の記事を参考にしてください。

この数値の入った文字に対してピボットテーブルを利用すると、下の図のように、複数のワークシートが数値の並び順どおりに作成されます。

複数のワークシートの並び順を統一
複数のワークシートの並び順を統一

マクロ/VBAで複数シートを一括で挿入し名前を自動入力する方法

続いて、マクロを使って、複数のワークシートを一括で挿入し名前を自動入力する方法を紹介します。

この方法は、上記で紹介したピボットテーブルを使った方法より、より簡単に大量のシートを作成することができます。

また、マクロを使ったことが無い初心者の方でも、下記手順に沿って作業すれば3分程度でマクロを作ることができるので、及び腰にならずぜひトライしてみてください。

複数シートを作成するためのコードをVBEに貼り付ける手順

それでは、マクロを実行するための専用コードを、マクロの実行ソフトを編集する「VBE(Visual Basic Editor)」に貼り付ける手順を紹介します。

手順1.Excelブックの拡張子を変更して保存

まずは、マクロを記録したいExcelブックの拡張子を「Excelマクロ有効ブック(*.xlsm)」に変更します。

複数シートを作成したいExcelブックの拡張子をマクロ有効ブックに変更
複数シートを作成したいExcelブックの拡張子をマクロ有効ブックに変更

手順2.『コードの表示』をクリック

エクセルのどのワークシートでもいいので、シート上で右クリックし、右クリックメニューのコードの表示」を選択します。

右クリックメニューの「コードの表示」を選択
右クリックメニューの「コードの表示」を選択

手順4.『標準モジュール』を選択

VBE「Visual Basic Editor」が起動します。VBAコードを登録するための箱を作成するため、「挿入」タブの「標準モジュール」を選択します。

標準モジュールを選択
標準モジュールを選択

手順5.『コード』の貼り付け

画面右上あたりのコードウィンドウの入力欄に、以下のコードを貼り付けします。貼り付けしたら、「上書き保存」ボタンを押します。

コードウィンドウにコードを貼り付け
コードウィンドウにコードを貼り付け

以下が貼り付けるVBAコードです。シートを追加できるAddメソッドを利用しています。

Sub リストから複数シート作成()
 Dim シート名 As Range
 For Each シート名 In Selection
  Sheets.Add after:=ActiveSheet
  ActiveSheet.Name = シート名.Value
 Next シート名
End Sub

保存が終わったら、一番右上の×ボタンで画面を消してください。以上でコードの貼り付け作業は完了です。

マクロを実行して、一括で複数シートを自動で作成

それでは実際に登録したマクロを使って、複数のワークシートを自動で作成します。

まず、作成したいシート名を入力したセルを選択し、「表示」タブの「マクロ」⇒「マクロの表示」をクリックします。

作成したいシート名が入力したセルを選択し「マクロの表示」を選択
作成したいシート名が入力したセルを選択し「マクロの表示」を選択

作成した「リストから複数シート作成」というマクロ名を選択して、「実行」ボタンを押します。

作成したマクロを選択して実行
作成したマクロを選択して実行

そうするとマクロが実行され、複数のシートが自動で作成され名前も入力されます。

マクロなしで作成する方法はシートの並び順を決めるのは難しかったですが、マクロを使った方法は選択したセルの並びに従ってシートが左側から順番に作成されます。

マクロを使って自動で複数シートが作成
マクロを使って自動で複数シートが作成

また、マクロを登録したExcelブックを開いていれば、他に開いているExcelブックに対してもマクロを実行することができます。

そのため、マクロを登録した1つのExcelブックさえ一度作ってしまえば、コードの登録作業は2回目を行う必要はありません。

マクロの注意点:年月や月日のシート名で実行する場合

上記で登録したマクロを利用して、年月や月日の名前で複数シートを作成する際は注意が必要です。

セルの表示形式が「2025年1月」などの日付のセルを選択して、複数シートを自動作成させるマクロを実行すると、以下のように「400」というエラーが発生します。

日付のセルに複数シート作成のマクロを実行するとエラーが発生
日付のセルに複数シート作成のマクロを実行するとエラーが発生

エラーが発生する原因は、セルの書式設定(表示形式)が「日付」になっているためです。

この場合は、セルの文字の先頭に’(シングルコーテーション)を入れるか、TEXT関数を使ってセルの文字の日付を文字列に変更し、マクロを実行します。

=TEXT(B2,"yyyy年m月")

TEXT関数で年月セルの表示を文字列に変更
TEXT関数で年月セルの表示を文字列に変更

月日が入力されたセルの場合は、以下のTEXT関数を挿入し、TEXT関数の文字に対してマクロを実行してください。

=TEXT(B2,"m月d日")

TEXT関数で月日のセルの表示を文字列に変更
TEXT関数で月日のセルの表示を文字列に変更

TEXT関数の中の「y」が年、「m」が月、「d」が日を表しています。日付の表示を「2025年4月」ではなく、「25年4月」と表示したい場合は、「=TEXT(B2,"yy年m月")」と入力します。

表示方法を詳しく知りたい方は、以下の記事を参考にしてください。