スポンサーリンク

開いているファイルの、ファイル名を取得する方法

関数の応用

ファイル名を取得する方法です。

エクセルの関数検索で、ファイル名とか、ファイルとかで検索しても出てこないのですが、CELL関数を使って、今使用しているファイルの、ファイル名(フルパス+シート名)を取得することができますので、やり方を紹介していきます。

CELL関数の機能を使う

セルの情報を取得することができる、CELL関数というものがあります。

関連の無さそうな名前ですが、このCELL関数で取得できる情報の中に、ファイル名もありますので、これを活用していきます。

使い方は簡単で、ファイル名を表示させたいセルに、下記の式をそのまま入力してください。

式:=CELL(“filename”,$A$1)

すると、ファイルの保存場所から、ファイル名、そしてシート名までが結果として表示されます。

使用上の注意

CELL関数を使うにあたって、少し注意点があります。

CELL関数の参照項目は入力しよう

今回は$A$1としていますが、B1でもC10でもいいので、なんかしらセルを参照させましょう。

省略してしまうと、想定外の結果が表示されてしまう事があります。

詳しくは、CELL関数についての記事、参照は省略しない方がいいの部分をご覧ください。

名前をつけて保存したら更新しよう

ファイルを上書き保存ではなく、名前をつけて保存で別のフォルダーに保存したり、ファイル名を変更して保存した場合、保存直後は変更前のファイル名が表示されてしまいます。

その場合は、ファイル内であればどこでもいいので、何か更新をかけてあげましょう。

例えば、F9キーで再計算をかけてあげたり、空いてるセルに適当な文字を入力してすぐ消したり。

ファイル名のみを取得する色々な手段

CELL関数を使うと、ファイル名だけではなく、どこに保存しているか、シート名は何かまで取得してしまいます。

必要な時はいいのですが、ファイル名だけが欲しい場合は、他の関数と組み合わせるなどして、不要な部分を削り落とす必要があります。

こればかりは絶対的な答えはありませんので、これから紹介する方法を駆使しながら、自分なりの式を作り上げてください。

ファイル名前後の[と]を目印に使う

CELL関数で取得したファイル名には、ファイル名の前後が[と]で囲まれています。

それを目印にして、FIND関数、MID関数を使って、ファイル名だけを取り出します。

式:=MID(CELL(“filename”,$A$1),FIND(“[“,CELL(“filename”,$A$1))+1,FIND(“]”,CELL(“filename”,$A$1))-FIND(“[“,CELL(“filename”,$A$1))-1)

仕組みとしては、MID関数の開始位置に、ファイル名から[を見つけた場所を指定。

次に、そこから何文字取得するかですが、ファイル名から[を見つけた場所から、]を見つけた場所までがファイル名なのですから、それを引き算してファイル名が何文字なのかを計算しています。

順を追って解説すると、まず[と]の位置が、数値にするとこうなります。

次に、ファイル名が何文字であるかを計算します。

終了位置から開始位置を引けば、ファイル名が何文字なのかわかります。

この考え方をMID関数に当てはめていったものが、冒頭の式になるわけです。

ルール化されたファイル名を活かし、ファイル名の一部を取得

例えば、セイウチ写真集yyyy年mm月号のように、一定のルールが決められていたとします。

そこから、MID関数とFIND関数と使ってyyyy年mm月の部分のみを取得する方法です。

今回はセイウチ写真集という単語が固定なので、これをMID関数の開始位置に使います。

次に、yyyy年mm月は文字数が固定なので、MID関数の文字数部分は数値で指定します。

式:=MID(CELL(“filename”,A1),FIND(“セイウチ写真集“,CELL(“filename”,A1))+7,8)

実際に使う場合は、赤文字の部分を変えて使ってください。

セイウチ写真集→目印になる単語
+7→目印単語の文字数
→表示させたい部分の文字数(今回はyyyy年mm月で8文字)

色々組み合わせてみよう

以上、CELL関数でファイル名を取得した後、MID関数やFIND関数で必要な部分のみを取得する方法を紹介してきました。

ですが、お使いの環境などによっては、その場に合わせて手を加える必要があるでしょうから、当記事を答えてして使うのではなく、一例として使ってもらえればと思います。

そのため、今回使ったCELL関数、MID関数、FIND関数についての知識を掘り下げる事で、より柔軟な対応ができるようになってきます。

他にも、RIGHT関数やLEFT関数、LEN関数なんかも活かせるんじゃないでしょうか。

また、ファイル名を抜き取る際、文字列操作にこういう考え方もありますので、参考にぜひご覧ください。

 

コメント

タイトルとURLをコピーしました