Microsoft Excel(エクセル)で複数のワークシートを挿入する必要がある時、1シートずつ挿入して名前を変更するのは時間がかかってしまいます。
例えば、各月分の12シートや、各日数分の30シートなど大量の複数シートが必要だったりする場合です。
こんな時は、一括でワークシートを挿入し名前も自動入力させるテクニックが存在します。
この記事では、上記操作に関して、マクロ/VBAを使わない方法と、マクロ/VBAを使う方法の2つをそれぞれ紹介します。
マクロ/VBAを使う方法は、特定のVBAコードを貼り付けるだけで誰でも簡単に利用できるので、どちらも知っていて損はありません。
それでは、どうぞご覧ください。
複数のワークシートを一括で挿入し名前を自動入力する方法
まずは、マクロ/VBAを使わずに、複数のワークシートを一括で挿入し名前を自動入力する方法を紹介します。
Worksheetの挿入は、表のデータを集計することのできる『ピボットテーブル』機能を利用します。
後は、複数のボタン操作を行うだけで完了するので、ピボットテーブルって何?という人でも簡単にシートを作成することができます。
👇ピボットテーブルの使い方を基本操作から詳しく知りたい人は以下を参考にしてください。
ピボットテーブルの「フィルターページの表示」を利用
エクセルのピボットテーブルは、膨大なデータを簡単に分析や集計するときに大いに役立つ便利機能です。
しかし、今回はデータの集計用に利用しません。
「ピボットテーブル分析」タブの「オプション」の中にある「レポートフィルターページの表示」ボタンを活用して、大量の複数シートを一瞬で作成します。
ピボットテーブルで複数シートを一括で挿入する手順
それでは実際に、ピボットテーブルで複数シートを一括で挿入&名前入力する手順を紹介します。
ピボットテーブルという名前に物怖じするほどの作業はありませんので、安心して操作してください。
手順1.シート名をセルに書き出す
まず、作成したい複数シートの名前を縦方向に列挙し、セルに入力します。
作成出来るシート数は、パソコンの使用可能メモリに依存するので正確な数は決まっていませんが、基本的に実務で使う程度のシート数であれば問題なく作成できます。
手順2.ピボットテーブルを挿入
手順1で作成したセル範囲であればどのセルでもいいので選択してから、「挿入」タブの「ピボットテーブル」をクリックします。
手順3.ピボットテーブルを挿入
そうすると、下のような「ピボットテーブルの作成」画面が表示されますので、元データのデータ範囲が正しか確認し、「OK」をクリックします。この操作でピボットテーブルのための新しいワークシートが自動で作成されます。
手順4.作業フィールドを操作
そうすると、画面右端にピボットテーブルの作業フィールドが表示されます。
作業フィールドに、元データの列項目名が表示されているので、この項目をフィールド下に配置されている「フィルター」カテゴリにドラッグ&ドロップします。
手順5.フィルターページの表示を選択
A1セルかB1セルをクリックすると「ピボットテーブル分析」タブが表示されるので、「ピボットテーブル」⇒「オプション」⇒「レポートフィルターページの表示」をクリックします。
「レポートフィルターページの表示」画面が表示されるので、そのまま「OK」を押してください。
手順6.複数のワークシートが瞬時に作成
そうすると、一瞬で複数のワークシートが名前付きで作成されます。シートの並び順は、平仮名のあいうえお順で左側から表示されます。
手順7.複数のワークシートを選択
A1セルとB1セルにピボットテーブルの機能が残っているので削除する必要があります。作成された一番左のシートを選択してから、一番右のシートを「Shift」キーを押しながらクリックして全シートを選択します。
手順8.セルの文字を削除
後は、何も入力されていないセルを「Ctrl+C」キーでコピーして、A1,B1セル周辺のセルに「Ctrl+V」キーで貼り付けして、ピボットテーブルの機能が挿入されたセルのデータを削除します。
手順9.複数シートの完成
以上の作業で、セルに何も入力されていない新規の複数のワークシートが完成します。必要に応じてピボットテーブルを挿入した時に作成された「Sheet1」シートは削除してください。
複数シートを並び順を調整したい場合の対処方法
上記で紹介したとおり、シート名が漢字やひらがなの場合は、あいうえお順で左側からシートが作成されます。
複数シートの並び順を調整したい場合は、シート名の先頭に数値を入れます。
&演算子やCONCAT関数を挿入し、「大阪店」を「1.大阪店」という名前に変更します。
=CONCAT(B2,".",C2)
文字を結合する方法を詳しく知りたい方は、以下の記事を参考にしてください。
この数値の入った文字に対してピボットテーブルを利用すると、下の図のように、複数のワークシートが数値の並び順どおりに作成されます。
マクロ/VBAで複数シートを一括で挿入し名前を自動入力する方法
続いて、マクロを使って、複数のワークシートを一括で挿入し名前を自動入力する方法を紹介します。
この方法は、上記で紹介したピボットテーブルを使った方法より、より簡単に大量のシートを作成することができます。
また、マクロを使ったことが無い初心者の方でも、下記手順に沿って作業すれば3分程度でマクロを作ることができるので、及び腰にならずぜひトライしてみてください。
複数シートを作成するためのコードをVBEに貼り付ける手順
それでは、マクロを実行するための専用コードを、マクロの実行ソフトを編集する「VBE(Visual Basic Editor)」に貼り付ける手順を紹介します。
手順1.Excelブックの拡張子を変更して保存
まずは、マクロを記録したいExcelブックの拡張子を「Excelマクロ有効ブック(*.xlsm)」に変更します。
手順2.『コードの表示』をクリック
エクセルのどのワークシートでもいいので、シート上で右クリックし、右クリックメニューの「コードの表示」を選択します。
手順4.『標準モジュール』を選択
VBE「Visual Basic Editor」が起動します。VBAコードを登録するための箱を作成するため、「挿入」タブの「標準モジュール」を選択します。
手順5.『コード』の貼り付け
画面右上あたりのコードウィンドウの入力欄に、以下のコードを貼り付けします。貼り付けしたら、「上書き保存」ボタンを押します。
以下が貼り付けるVBAコードです。シートを追加できるAddメソッドを利用しています。
保存が終わったら、一番右上の×ボタンで画面を消してください。以上でコードの貼り付け作業は完了です。
マクロを実行して、一括で複数シートを自動で作成
それでは実際に登録したマクロを使って、複数のワークシートを自動で作成します。
まず、作成したいシート名を入力したセルを選択し、「表示」タブの「マクロ」⇒「マクロの表示」をクリックします。
作成した「リストから複数シート作成」というマクロ名を選択して、「実行」ボタンを押します。
そうするとマクロが実行され、複数のシートが自動で作成され名前も入力されます。
マクロなしで作成する方法はシートの並び順を決めるのは難しかったですが、マクロを使った方法は選択したセルの並びに従ってシートが左側から順番に作成されます。
また、マクロを登録したExcelブックを開いていれば、他に開いているExcelブックに対してもマクロを実行することができます。
そのため、マクロを登録した1つのExcelブックさえ一度作ってしまえば、コードの登録作業は2回目を行う必要はありません。
マクロの注意点:年月や月日のシート名で実行する場合
上記で登録したマクロを利用して、年月や月日の名前で複数シートを作成する際は注意が必要です。
セルの表示形式が「2025年1月」などの日付のセルを選択して、複数シートを自動作成させるマクロを実行すると、以下のように「400」というエラーが発生します。
エラーが発生する原因は、セルの書式設定(表示形式)が「日付」になっているためです。
この場合は、セルの文字の先頭に’(シングルコーテーション)を入れるか、TEXT関数を使ってセルの文字の日付を文字列に変更し、マクロを実行します。
=TEXT(B2,"yyyy年m月")
月日が入力されたセルの場合は、以下のTEXT関数を挿入し、TEXT関数の文字に対してマクロを実行してください。
=TEXT(B2,"m月d日")
TEXT関数の中の「y」が年、「m」が月、「d」が日を表しています。日付の表示を「2025年4月」ではなく、「25年4月」と表示したい場合は、「=TEXT(B2,"yy年m月")」と入力します。
表示方法を詳しく知りたい方は、以下の記事を参考にしてください。