Excelのワークシート関数だけで、自分自身のシート名を参照するにはどうすればいいでしょう。

検索すると以下の回答が得られます。

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

なるほど、ファイル名(フルパス)から”]“までを取り除けば、確かにシート名になりそうですね。

C:¥[新規 Microsoft Excel ワークシート.xlsx]Sheet1

でもちょっと待ってください。パスの途中に”]“が存在していたら結果が異なってしまうでしょう。

C:¥新しいフォルダー[1]¥[新規 Microsoft Excel ワークシート.xlsx]Sheet1

そこで新提案。

こんな感じで書けば、確実にシート名が取れますよ!!えっへん!

=if(LEFT(RIGHT(CELL("filename"),2),1)="]",RIGHT(CELL("filename"),1),if(LEFT(RIGHT(CELL("filename"),3),1)="]",RIGHT(CELL("filename"),2),if(LEFT(RIGHT(CELL("filename"),4),1)="]",RIGHT(CELL("filename"),3),if(LEFT(RIGHT(CELL("filename"),5),1)="]",RIGHT(CELL("filename"),4),if(LEFT(RIGHT(CELL("filename"),6),1)="]",RIGHT(CELL("filename"),5),if(LEFT(RIGHT(CELL("filename"),7),1)="]",RIGHT(CELL("filename"),6),if(LEFT(RIGHT(CELL("filename"),8),1)="]",RIGHT(CELL("filename"),7),if(LEFT(RIGHT(CELL("filename"),9),1)="]",RIGHT(CELL("filename"),8),if(LEFT(RIGHT(CELL("filename"),10),1)="]",RIGHT(CELL("filename"),9),if(LEFT(RIGHT(CELL("filename"),11),1)="]",RIGHT(CELL("filename"),10),if(LEFT(RIGHT(CELL("filename"),12),1)="]",RIGHT(CELL("filename"),11),if(LEFT(RIGHT(CELL("filename"),13),1)="]",RIGHT(CELL("filename"),12),if(LEFT(RIGHT(CELL("filename"),14),1)="]",RIGHT(CELL("filename"),13),if(LEFT(RIGHT(CELL("filename"),15),1)="]",RIGHT(CELL("filename"),14),if(LEFT(RIGHT(CELL("filename"),16),1)="]",RIGHT(CELL("filename"),15),if(LEFT(RIGHT(CELL("filename"),17),1)="]",RIGHT(CELL("filename"),16),if(LEFT(RIGHT(CELL("filename"),18),1)="]",RIGHT(CELL("filename"),17),if(LEFT(RIGHT(CELL("filename"),19),1)="]",RIGHT(CELL("filename"),18),if(LEFT(RIGHT(CELL("filename"),20),1)="]",RIGHT(CELL("filename"),19),if(LEFT(RIGHT(CELL("filename"),21),1)="]",RIGHT(CELL("filename"),20),if(LEFT(RIGHT(CELL("filename"),22),1)="]",RIGHT(CELL("filename"),21),if(LEFT(RIGHT(CELL("filename"),23),1)="]",RIGHT(CELL("filename"),22),if(LEFT(RIGHT(CELL("filename"),24),1)="]",RIGHT(CELL("filename"),23),if(LEFT(RIGHT(CELL("filename"),25),1)="]",RIGHT(CELL("filename"),24),if(LEFT(RIGHT(CELL("filename"),26),1)="]",RIGHT(CELL("filename"),25),if(LEFT(RIGHT(CELL("filename"),27),1)="]",RIGHT(CELL("filename"),26),if(LEFT(RIGHT(CELL("filename"),28),1)="]",RIGHT(CELL("filename"),27),if(LEFT(RIGHT(CELL("filename"),29),1)="]",RIGHT(CELL("filename"),28),if(LEFT(RIGHT(CELL("filename"),30),1)="]",RIGHT(CELL("filename"),29),if(LEFT(RIGHT(CELL("filename"),31),1)="]",RIGHT(CELL("filename"),30),RIGHT(CELL("filename"),31)))))))))))))))))))))))))))))))

・・・ごめんなさい。

String#lastIndexOfに相当するFIND関数があればいいのにね、というお話でした。