Excel の関数でありそうでないのが、自分のブック名やシート名を表示する関数です。なぜないのか(汗 ヘッダーやフッターには表示できるのに・・・
ということで、ワークシート名等を表示させる関数を以下にメモ。いずれも標準モジュールに作成します。
- 自ワークブック名を取得する
自身のワークブック名を取得します。ポイントは Application.Volatile (*1) で、これでブック名を変更しても変更後のブック名に追従させることが可能です。
使い方は "=ThisWorkbookName()"。 最後の "()" を省略すると、"#NAME?" になってしまうので忘れずに付けます。Function ThisWorkbookName() As String Application.Volatile ThisWorkbookName = Application.ThisWorkbook.Name End Function
(*1) https://msdn.microsoft.com/ja-jp/library/office/Ff195441.aspx
- 自ワークシート名を取得する
自身のワークシート名を取得します。ポイントは Application.Caller.Worksheet で、これで関数を呼び出したワークシートを特定します。
使い方は "=ThisWorksheetName()"Function ThisWorksheetName() As String Application.Volatile ThisWorksheetName = Application.Caller.Worksheet.Name End Function
- 指定シートのワークシート名を取得する
おまけ。指定のワークシート名を取得します。
使い方は、"=WorksheetName(1)" など引数にシート番号を指定します。Function WorksheetName(index As Integer) As String Application.Volatile WorksheetName = Application.Sheets(index).Name End Function