【Excel】シート名を取得する方法(1)

Excelにおいて、シート名を取得したいときは、どのようにすればいいのでしょうか。

シート名を取得するSHEETNAME()のような関数があればいいかもしれませんが、そのような関数は残念ながらありません。

しかし、CELL関数とRIGHT関数とLEN関数とFIND関数という関数を組み合わせて使えば、シート名を取得するすることができます。

シート名を取得することができれば、シートの中身は同じだけど、シートの中身のある部分だけシート名を入れたいといったような場合に非常に便利です。

それでは、シート名を取得する方法を見ていきましょう。

シート名を取得する方法

結論から先にお伝えしようと思います。シート名を取得するには、次のように入力します。基本的には、このままExcelのセルに入力してしまえば、セル名が取得できます。(例えば、ファイル名に”]”が使われているときなどはうまくできません。)

=RIGHT(CELL(“filename”),LEN(CELL(“filename”))-FIND(“]”,CELL(“filename”)))

なんで上記の数式でシート名が取得できるのかは、これから説明します。気になる方はご覧ください。

シート名を取得するために使う関数

シート名を取得するために使った関数であるCELL関数、LEN関数、FIND関数、RIGHT関数について簡単に見ていきたいと思います。

CELL関数

CELL関数は、セルの書式、位置、内容などセルに関する情報を返す関数になります。

その機能のひとつとして、引数に”filename”を入力することで、ファイルのフルパス名を取得できます。

 =CELL(“filename”)

図1のA2セルには、=CELL(“filename”)という数式が入力されています。ご覧の通り、このExcelファイルのフルパス名が取得できていることがわかります。

図1

LEN関数

LEN関数は文字列の文字数を返す関数です。

 =LEN(文字列)

=LEN(“ABCDE”)と入力すると、5という数字が返ってきます。

FIND関数

FIND関数は、指定した文字列において、検索したい文字列が左から数えて何番目にあるかを調べる関数です。

=FIND(検索文字列, 対象, [開始位置])

=FIND(“C”,”ABCDE”)と入力したとします。”C”という検索したい文字列は、”ABCDE”という文字列において、左から3番目の位置にあります。つまり、上記の数式の結果は3になります。

RIGHT関数

RIGHT関数は、文字列の末尾から指定された文字数の文字を返す関数です。

=RIGHT(文字列,[文字数])

=RIGHT(“ABCDE”,2)と入力したとします。ABCDEという文字列の末尾から2つを返すということになりので、結果はDEとなります。

どのようにシート名を取得するのか?

=RIGHT(CELL(“filename”),LEN(CELL(“filename”))-FIND(“]”,CELL(“filename”)))

シート名を取得するには、まず、CELL関数でファイルのフルパス名を取得します。

ポイントはこのCELL関数で取得したフルパス名です。

C:\Users\username\Documents\[Book1.xlsx]Sheet1

取得したフルパス名を見ると末尾にシート名である「Sheet1」があります。RIGHT関数で取得したいところですが、右から何文字取得すればいいかはシート名の文字数によって変わってきます。ですので、右から何文字分だけ取得すればいいかがわかれば、RIGHT関数でシート名を取得できそうです。

さらによく見ると、エクセルのファイル名が”[]”で囲まれているため、シート名の前に必ず”]”という文字列があるということになります。この”]”から前を除去できれば、シート名が取得できそうです。

そこで、LEN関数でフルパス名の文字列を数え、さらにFIND関数で”]”までの文字数を数えます。そして、その差をとれば、シート名の文字数になるので、最後にRIGHT関数でシート名を取得するという流れになります。

おわりに

今回は数式バーに関数を入力して、シート名を取得する方法をご紹介しました。VBAを用いてシート名を取得する方法もご紹介しますので、ぜひご覧ください。VBAははじめてですという方でも、できるようになってますので安心してください。

お久しぶりです。管理人のTomです。約2か月ぶりの更新となります。こんなブログ?でも見に来てくださってる方ありがとうございます。引き続き更新はしていくつもりです...
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする