エクセルでマクロを使わず自身のファイル名を取得(セルに表示)

この表をエクセルに直接貼り付ければ動作が確認できる。

セル内に入力する内容 表示される内容 表示例
=CELL("filename") フルパス+ファイル名([ ]で囲まれている)+シート名 C:\Profiles\user1\My Documents\[Book1.xls]Sheet 1
=REPLACE(REPLACE(CELL("filename"), FIND("]", CELL("filename")), 256, ""), FIND("[", CELL("filename")), 1, "") フルパス+ファイル名([ ]無し) C:\Profiles\user1\My Documents\Book1.xls
=MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filename"))-FIND("[",CELL("filename"))-1) ファイル名 Book1.xls

※ファイル名がつけられていないデータ(新規作成後一度も保存していないデータ)では、CELL("filename")の戻り値が空白になるため、適切な結果は得られない。
※CELL関数の再計算のタイミング等によっては、表示データが不正確(不適切)になる場合があるので注意が必要。