年ごとにファイルを作る時は、ファイル名の後ろ(拡張子の前)に西暦の数値を入れてファイルを作成します。


↑こんな感じでファイルを保存していますが、ズボラな私は、このファイルの中身のセルに西暦を入力するのさえ面倒。
いくつものセルに西暦を入れないといけない場合は、入れ忘れる時もあるし・・・。
「どうにか自動で西暦が入らないかな?」と考えた私。
「そうだ! ファイル名から取得しよう!」
「どうせファイル名には必ず西暦をつけるし! ナイスアイデア!!」
ということでやってみました。
投稿者「みか」自己紹介

- パソコンとデータベースが大好き
- 自社でネットワーク・システム・機器管理、Webサイト構築
- 自社向けのシステムをMicrosoft AccessやPHPで多数構築
- Excelでの作業はVBAを使って効率化
- ロックバンド「VARS」でベース担当
- 「VARS」のWebサイト、ブログも構築
- 「VARS」のライブを観に来てね!https://vasofatum.jp/live/
「CELL」「RIGHT」「SUBSTITUTE」関数でファイル名の一部をセルに表示
ファイル名を取得するには「CELL関数」が便利!
=CELL("filename")
と入力すると、ファイルのパスからシート名まで取得、表示されます。

この「CELL」関数、そして「RIGHT」関数、「SUBSTITUTE」関数を利用して、西暦のみをセルに表示します。
ファイル名は[]で囲まれているので、「RIGHT」関数を使って ] の左の拡張子の左6文字分を取得し、「SUBSTITUTE」関数で不要な部分を置換後、右から4文字分を取得し表示します。
※6文字を足す理由は .xlsx] も含めるため
=RIGHT(SUBSTITUTE(CELL("filename"),RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename"),1)+6),""),4)

ファイル名の一部がセルに表示されました。
「CELL」「RIGHT」「SUBSTITUTE」関数の使い方の解説
中央付近の「RIGHT」関数は、ファイル名の ] から左へ6文字分までの文字を取得しています。
結果:.xlsx]Sheet1
![=RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename"),1)+6)](https://relax-mika.vasofatum.jp/wp-content/uploads/2026/02/07.webp)
「SUBSTITUTE」関数は、ファイル名から上の「RIGHT」関数で取得した文字を "" に置換しています。
結果:C:\Users\admin\Desktop\テスト[あいうえお2026
![=SUBSTITUTE(CELL("filename"),RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename"),1)+6),"")](https://relax-mika.vasofatum.jp/wp-content/uploads/2026/02/06.webp)
一番左の「RIGHT」関数は、上の「SUBSTITUTE」関数で取得した文字の右から4文字(西暦の部分)を取得しています。
結果:2026
![=RIGHT(SUBSTITUTE(CELL("filename"),RIGHT(CELL("filename"),LEN(CELL("filename"))-SEARCH("]",CELL("filename"),1)+6),""),4)](https://relax-mika.vasofatum.jp/wp-content/uploads/2026/02/05.webp)
これで面倒な西暦は入力しなおす手間が省けました。
こういう小さい部分も自動化しておくと、面倒でもないし、単純ミスも防ぐことができます(^^)/