Excel~取得したブック名をセルに表示しよう~エクセル
セルにブック名を表示する方法を解説します。
下の関数を適当なセルに入力するとそのブックのブック名が表示されます。
=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-(FIND("[",CELL("filename",A1))+1))
説明
MID(文字列, 開始位置, 文字数)で文字列の左から開始位置の数値分の文字を開始位置とし、開始位置から右に文字数ぶん文字列を取り出します。
今回、文字列に代入されているのはCELL("filename",A1)でファイル名がパス形式で例としてC:\Users\username\Desktop\[ファイル名]シート名のように表示されます。
開始位置に代入されているのがFIND("[",CELL("filename",A1))+1になります。
Find("探したい文字",文字列)で探したい文字が文字列の左から何番目か返します。
探したい文字に代入さているのが[で文字列に代入さているのがCELL("filename",A1)になるのでCELL("filename",A1)で返されるC:\Users\username\Desktop\[ファイル名]シート名の中で[が左から何番目にあるか返します。最後に+1がついているので開始位置は[の右の文字の位置になります。
文字数に代入されているのがFIND("]",CELL("filename",A1))-(FIND("[",CELL("filename",A1))+1)になります。
FIND("]",CELL("filename",A1))は開始位置で出てきたFIND関数と同じようにCELL("filename",A1)で返されるC:\Users\username\Desktop\[ファイル名]シート名の中で]が左から何番目にあるか返します。[と]が違うだけです。
(FIND("[",CELL("filename",A1))+1)は開始位置と同じなので[の右の文字が左から何番目にあるか返します。
つまりこの式はC:\Users\username\Desktop\[ファイル名]シート名の文字列のなかで左から数えた]の位置から左から数えた[の右の文字の位置を引くことを意味します。
これによりファイル名の文字数が求まります。
文字列、開始位置、文字数が揃うのでMID関数からファイル名が取り出せます。