マクロ関数を使用せずにシート名の一覧をスピル形式で生成する方法

この記事ではシート名の一覧をスピル形式で生成させる手順をご紹介します。

なお、「マクロ関数」を使用することが可能な環境(マクロ有効ブックにして「信頼できる場所」へ登録しておける環境)であるならば、以下の記事の方法が簡単です。

ワークシート名の一覧をスピル形式で生成する方法(マクロ関数を使用する)
Excelでワークシート名の一覧をスピル形式で生成する方法(マクロ関数を使用する) Excelでワークシートの一覧を取得し、スピル形式で表示させる方法について解説します。この方法を使用すると、現在のワークブック内のすべてのシート名を簡単に取...

この記事では「マクロ関数」を使用せずにシート名の一覧を生成する流れをご紹介します。

シート一覧の最初と最後に認識用のシートを設置する

例では「Sheet1」~「Sheet4」があります。これらのリストを作成する前に、最初と最後に適当な空のシートを設置しましょう。例では「S開始」「S終了」を設置しています。

すべてのシートの同じ位置にシート名を表示する計算式をセットする

次にすべてのシートの同じ位置にシート名を表示する計算式をセットします。位置はどこでもかまいません。下の例では一番右のセル「XFD1」へセットしています。

計算式は以下のものになります。ただしこの計算式は「ファイルの保存」がなされていないと有効になりませんので注意してください。

=TEXTAFTER(CELL("filename", A1), "]")

この計算式に関する詳しい説明は下記の記事になります。

Excelでブックのシート名を取得する計算式の設置方法(最新・Excel365用)
最新のExcelバージョンでシート名を取得するための簡潔な計算式 Excelで作業をしていると、現在のシート名を取得したい場合があります。最新のExcelバージョンでは、TEXTAFTER関数とCELL関数を組み合わせることで、簡単にシート...

ここではすべてのシートの一番右のセル「XFD1」へ計算式をセットする流れを紹介します。

  • シート見出しを右クリックして「すべてのシートを選択」
  • {Ctrl}+{→}キーを使って一番右のセル「XFD1」を選択
  • =TEXTAFTER(CELL("filename", A1), "]") を貼り付け
  • シート見出しを右クリックして「シートのグループ解除」(シート全選択を解除)
サンプルでは一番右のXFD1へセットしているが、共通した位置ならばどこでもよい。

サンプルでは一番右のXFD1へセットしているが、共通した位置ならばどこでもよい。

シート名文字列を結合してスピル形式で書き出す

シート名の一覧を生成する計算式

準備ができたら、シート名の一覧を生成したいセルへ以下の計算式をセットします。

=TEXTSPLIT(TEXTJOIN(",",,S開始:S終了!XFD1),,",")

この式の意味を下で解説します。

式の構造解説1. シート名を結合してリスト化

まず、TEXTJOIN関数を使って、XFD1セルに表示されたすべてのシート名をカンマ区切りで結合します。区切り文字は別のものでも有効です。

=TEXTJOIN(",",,S開始:S終了!XFD1)

この部分では、「S開始」シートから「S終了」シートまでのすべてのシート名が結合され、1つの文字列として返されます。

式の構造解説2. リストの分割

最後に、TEXTSPLIT関数を使って、結合されたシート名をカンマで行方向に分割し、個々のシート名をスピル形式で表示します。

=TEXTSPLIT(TEXTJOIN(",",,S開始:S終了!XFD1),,",")

この最終的な計算式により、すべてのシート名が1つのセルにリストとして表示され、スピル形式で展開されます。

上下の切り落とし

先頭の「S開始」と最後の「S終了」を表示させないのならば以下の一例のようにDROP関数で加工するのがよいでしょう。

=DROP(DROP(TEXTSPLIT(TEXTJOIN(",",,S開始:S終了!XFD1),,","),1),-1)
  • DROP(配列,1)……は配列から先頭行を削除します。
  • DROP(配列,-1)……は配列から最終行を削除します。

コメント