はじめに
業種によってはエルセルのシート名をちゃんとかいて、そのシートの一番上に何のデータなのか、どう分析したのかしっかり明記する必要がある。特に官公庁相手に仕事をしていると、その必要性が高い。
あとでポンコツが見ても同じデータを再現できるようににしておく必要があるからです。
というか、相手が誰であれシートに端的に明記するのは当たり前であって欲しいんだけど。
たまに社内で回ってくる内線番号表とか、支社別にシートに分けて作ってあるくせに、Sheet1,....とあってさっぱりわけがわからん時が多い。
という前段はさておき、そのシート名をセルに表示したいと思う。
方法は2つ。
①長い関数を使ってゴリ押しで表示する方法
②オリジナル関数(マクロのファンクション)で簡潔にする方法
①長い関数でゴリ押しする方法
excel関数
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
セルでA1を指定する必要は特にありません。そのシート城載せるならなんでも良いので、あとでA列やら1行目を削除する必要が出てくる可能性があるときは、関数を入れるセル自身を指定した方が良いでしょう。
オリジナル関数で表示する方法
vba Function
Function Sheetname(TargetCell as range)
Sheetname = TargetCell.worksheet.Name
End Function
デメリットとしては、マクロの使用を禁止している企業がたまにあること、
マクロ有効ファイルで保存する必要があること。
拡張子がxlsxじゃないと不安になる人もたまにいる。
そんな感じで今日もまたへんな資料が日本で生まれているのです。
ツイッター

@twExcel140
2019-02-28 05:39:27
【EXCEL超入門 エクセルナビゲート<セルにシート名を表示>】:"=RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1)))"と入力。