スピル機能を使ったワークシート名の一覧を表示させるユーザー定義関数
Excelにはワークシート名の一覧を取得する組み込み関数が存在しないため、VBA(Visual Basic for Applications)を利用してユーザー定義関数を作成することで、この問題を解決できます。本記事では、スピル機能を利用してワークシート名の一覧を表示するユーザー定義関数の作成方法と使用例について解説します。なお、スピル機能はExcel 2021、Microsoft 365以降のバージョンで導入されています。それ以前のバージョンでは使用できません。
ユーザー定義関数の作成方法
以下の手順で、ワークシート名の一覧を表示するユーザー定義関数「ListSheets」を作成します。
- Excelを開き、
Alt + F11
キーを押してVBAエディタを起動します。 - 左上の「挿入」メニューから「標準モジュール」を選択し、新しいモジュールを追加します。
- 新しいモジュールのコードウィンドウに、以下のVBAコードを貼り付けます。
Function ListSheets() As Variant Dim ws As Worksheet Dim i As Integer Dim wsArray() As String Application.Volatile ReDim wsArray(1 To ThisWorkbook.Worksheets.Count) i = 1 For Each ws In ThisWorkbook.Worksheets wsArray(i) = ws.Name i = i + 1 Next ws ListSheets = Application.WorksheetFunction.Transpose(wsArray) End Function
Ctrl + S
キーを押してVBAプロジェクトを保存し、VBAエディタを閉じます。
関数の使い方とサンプル
作成したユーザー定義関数「ListSheets」は、Excelのシート内で=ListSheets()
と入力することで、現在のブック内のすべてのワークシート名が一覧で表示されます。スピル機能を活用して、一覧は自動的に下方向に展開されます。関数を入力するセルの下に十分な空きスペースがあることを確認してください。
例えば、以下のようなワークシート名が存在するブックがあるとします。
- Sheet1
- Sheet2
- Sheet3
- Data
- Summary
A1セルに=ListSheets()
関数を入力すると、ワークシート名が以下のように一覧表示されます。
A1: Sheet1 A2: Sheet2 A3: Sheet3 A4: Data A5: Summary
この関数は、現在開いているブック内のワークシート名を取得します。他のブックのワークシート名を取得する場合は、VBAコード内のThisWorkbook
を適切なブックオブジェクトに変更してください。
まとめ
本記事では、スピル機能を使ってワークシート名の一覧を表示するユーザー定義関数「ListSheets」の作成方法と使用例を解説しました。この関数は、ワークシート名を一覧で表示するための簡単な方法を提供し、ブック内のワークシートを素早く参照したい場合に非常に便利です。是非ともお試しください。
コメント