マクロ不使用 Excel 任意名称のシートを多数作成する方法

Excel マクロ、VBA

スポンサーリンク

Excelで、下図のように一覧表にまとめておいた文字列の通りに、大量のシートを手っ取り早く作成したいということはあるだろう。

通常の手段では、Excelのシート名というのは、1個1個ずつしか変更できず、なかなか方法が難しいところだ。

通常の解法:マクロ使用

この場合、はっきり言えばマクロでやってしまうのが最も確実で手っ取り早い。

当ブログで書いた記事で説明すると、

まずこちらの記事で書いたマクロ「insertMultipleSheets」などを使用して、必要な枚数のシート(シート名は未調整)を作成する。

こちらの記事に書いたマクロで、それらシートの名称を一括設定する。

ということで良いかと思う。

Excel シートの新規挿入とかコピーをたくさん同時に実施する方法 普通の操作とかマクロとか

Excel VBA 全てのシート名を一括で変更しまくれるマクロ 個人用マクロブックに組み込めるよ

マクロを使わずやってみる

今回は、マクロを使わずちょっとした技を使って、この大量シート生成する方法を取り上げる。

ただこの方法は、生成されたシートの並び順は強制的に名前順になるので、シートの並び順まではコントロールできない。
割と面倒だし、半分ネタ技くらいに思って良いだろう。

シート名の一覧表を作成

まず新規シートのA1セルに、「シート名」とでもタイトルを入れよう。

このA1セルが、タイトル用の特別なセルであると設定するため、横方向中央揃えにでも設定しておこう。

そしてA2セル以降に、シート名をまとめる。

ピボットテーブルに変換

次に、この表をピボットテーブルに変換するのがポイント。

リボン「挿入」タブ
→「ピボットテーブル」

とする。

確認画面が出てくるが、そのまま「OK」を押せば良い。

ピボットテーブルのレイアウト作成画面が表示される。

右端の画面に「シート名」というフィールドが表示されているはずだが、これを「フィルター」の場所へドラッグしよう。

シート生成

リボン「ピボットテーブル分析」タブの「オプション」ボタンにおいて、ボタンをそのまま押さず、右端の▼ボタンを押す。
その分岐メニューから「レポートフィルターページの表示」を押す。

確認画面が出るが「OK」を押す。

これで、一覧表にまとめておいた通りに新規シートが生成される。

ただこのままでは、各シートのA1セル・B1セルに邪魔な文字が残ったままだから、それを消すところまでやろう。

適当なシート見出しを右クリック
→「すべてのシートを選択」

で、全シートを選択する。

A1セル・B1セルを必ず含むようにセル範囲を選択し、Deleteとか行削除とかで消してしまおう。これで、作成した全てのシートの内容がまっさらにされる。

ピボットテーブル作成元のシート「Sheet1」「Sheet2」というのが残ってるかと思うけど、それらは削除してしまえば仕上がりだ。

「レポートフィルターページの表示」機能について

今回取り上げた、ピボットテーブルの「レポートフィルターページの表示」機能は本来、ピボットテーブルの分析結果をシート分けするためのものだ。

一見かなり便利そうだが、大量生成されたシートには、ウインドウ枠固定とかページ設定などの設定が全くなされていない。
それらを別途設定するのが面倒なので、意外に不便だと思って、私はこの機能はあまり使っていない。

多分、多くのピボットテーブル解説本でも、あまり強調して取り上げられていないはずだ。

一応、こちらに用意したサンプルファイルに基づいて、説明してみようと思う。

サンプルファイルでは下図のように、項目「カテゴリ」が「フィルター」の場所に指定されている。

この「フィルター」の場所にある項目は、右端の▼ボタンを押せば、オートフィルターの要領で、項目を選択する画面が出てくる。

これを
(すべて)
を選択した状態ならば、全ての選択肢の結果を合算したものがピボットテーブルに表示されるわけだ。

選択肢から「飲料」など項目を選択すれば、それに従った結果のみがピボットテーブルに表示される。

そして、
リボン「ピボットテーブル分析」タブ
→「オプション」ボタン右端の▼ボタンを押す
→分岐メニューから「レポートフィルターページの表示

とすれば、項目「カテゴリ」にある各項目が、シート名を自動設定した上で項目ごとシート分けしてくれる。

ただまあ、やたらとシート分けすること自体が基本的には悪手であるし、先述のようにページ設定などを別途やるのが面倒だ。

あまりこの機能を多用しようと思わなくて良いだろう。

スポンサーリンク