エクセルでマクロを使わず自身のファイル名を取得(セルに表示)
この表をエクセルに直接貼り付ければ動作が確認できる。
セル内に入力する内容 | 表示される内容 | 表示例 |
---|---|---|
=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関数の再計算のタイミング等によっては、表示データが不正確(不適切)になる場合があるので注意が必要。