Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » ワークシート名をセルに表示−CELL・FIND・LEN・RIGHT関数

ワークシート名をセルに表示−CELL・FIND・LEN・RIGHT関数

対象:Excel97, Excel2000, Excel2002, Excel2003

「エクセルでセルにワークシート名を表示させるにはどうすればいいのでしょうか?」
Excelをお使いの方からいただく定番の質問の一つです。

VBA(Visual Basic for Applications)がわかる方だと、アクティブなWorkSheetオブジェクトのNameプロパティを取得するユーザー定義関数を作るのでしょうが、ワークシート関数だけでもシート名をセルに表示することは可能です。

[スポンサード リンク]

セルの情報を取得するCELL関数と、文字列を切り出すためにRIGHT関数・LEN関数・FIND関数を組み合わせれば、シート名をセルに表示できます。


▼操作手順:セルにワークシート名を表示させる
ワークシート名を表示させたいセルに、
「=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))」
と入力する

関数の入れ子に慣れていない方の場合、この長い数式を見ただけでイヤになってしまうかもしれませんが、根気よく見ていけば一つ一つは決して難しいことをやっていません。
改行やインデントをするともう少し読みやすくなるかもしれません。
=RIGHT(
  CELL("filename",A1),
  LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))
)

以前、住所から県名以降を取得する方法をご紹介しましたが、シート名を取得するのも実はまったく同じことです。

RIGHT関数は、第1引数で指定された文字列の右側から、第2引数で指定した文字数分の文字列を返してくれます。

今回のRIGHT関数の第1引数は、
「CELL("filename",A1)」
第2引数は、
「LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))」
です。

3回も出てきているCELL関数は、第2引数で指定されたセルの情報を取得するのが主な役割ですが、第1引数で「"filename"」を指定すると、「絶対パス名+[ファイル名]+シート名」を取得することができます。

つまり、RIGHT関数の第1引数には、「絶対パス名+[ファイル名]+シート名」を指定していることになります。

なお、CELL関数でセルの情報を取得する場合は、情報を取得したいセルを指定しますが、今回は「絶対パス名+[ファイル名]+シート名」を取得するためですから、どのセルを指定しても構わないのでとりあえずA1セルを指定しています。


次にRIGHT関数の第2引数を見てみましょう。

「LEN(CELL("filename",A1))」の部分は、何文字あるか数えてくれる関数=LEN関数を使って、「絶対パス名+[ファイル名]+シート名」が何文字あるかを調べています。

「FIND("]",CELL("filename",A1))」の部分は、「絶対パス名+[ファイル名]+シート名」の中でファイル名の後に表示される「]」が何文字目にあるのかを調べています。

ですから、例えば「LEN(CELL("filename",A1))」が25文字で、「FIND("]",CELL("filename",A1))」が20文字ならば、25文字-20文字=5文字がシート名部分の文字数になります。

よって、RIGHT関数で「絶対パス名+[ファイル名]+シート名」からシート名の文字数分の文字列を取得すれば、ワークシート名が取得できるというわけです。

説明を読むだけではなかなかわかりにくいでしょうから、
「CELL("filename",A1)」
「LEN(CELL("filename",A1))」
「FIND("]",CELL("filename",A1))」
がそれぞれどんな値を返してくるのかを是非試してみてください。

それから、まだ保存されていない新規ファイルでは「CELL("filename",A1)」で何も取得できないために、「=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))」を指定しても#VALUE!エラーとなります。一度は保存の行なわれたファイルで試してみてください。

Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » ワークシート名をセルに表示−CELL・FIND・LEN・RIGHT関数

トラックバック:5

TrackBack URL
ワークブック名をセルに表示−CELL関数,FIND関数,MID関数 from インストラクターのネタ帳
対象:Excel CELL関数の第1引数に「"filename"」を指定することで、「絶対パス名+[ファイル名]+シート名」を取得し、そこからFIND関数・LEN関数・RIGHT関数を使ってシート名をセルに表示させる方法をご紹介しました。 似たようなことですが、 ブック名を表示させるには...
ワークシート名をセルに表示 from インストラクターのネタ帳
対象:Excel 97,2000,2002,2003 ワークシート関数を使ってブック名を表示させる方法では、上手くワークブック名が取得できない場合があるとこととその対策をご紹介しました。 同様の問題は、ワークシート関数を使ってシート名をセルに表示させる場合にもやっぱり発生しま...
セル内の特定文字数をカウントする−LEN関数・SUBSTITUTE関数 from インストラクターのネタ帳
対象:Excel97,Excel2000,Excel2002,Excel2003,Excel2007 「特定の文字の数だけをカウントしたいのですが......
セルの値をシート名にするマクロ from インストラクターのネタ帳
対象:Excel97,Excel2000,Excel2002,Excel2003,Excel2007 アクティブセルの値を[名前をつけて保存]ダイアロ...
文字数をカウントする関数−LEN関数 from インストラクターのネタ帳
対象:Excel2002, Excel2003, Excel2007, Excel2010 このサイト・インストラクターのネタ帳で 「エクセル 文字数 ...

Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » ワークシート名をセルに表示−CELL・FIND・LEN・RIGHT関数

「文字列」の記事一覧

検索

このページの上部へジャンプ

.