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関数があればいいのにね、というお話でした。