Excelで月ごとや担当ごとにシートを分けて管理しているブックでは、表の見出しに「4月」「経費表」といったシート名を手打ちしていることが少なくありません。シートをコピーして名前を変えたのに、表の中の見出しだけ前のシート名のまま…という間違いは、手打ちをしている限りいつか起きます。月次の報告書のように「同じ作りのシートを増やしていく」ブックほど、この直し忘れが入り込みやすくなります。
結論からお伝えすると、シート名の自動表示は、CELL関数に「,A1」を付けた式をセルに貼るだけで完成します。使う式はこれです。
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
ただ、この式は昔からの定番なのに、「なぜA1が要るのか」「なぜ#VALUE!になることがあるのか」まで実際に確かめた解説はほとんどありません。この記事では、当サイトの実機(Windows 11のOffice 2019のExcel)で式を1つずつ入力し、うまくいく場合もエラーになる場合も実際に操作して確かめました。同じ式を紹介するだけでなく、「A1を省略すると本当はどうなるのか」を2つのシートで実験した結果までお見せします。
シート名をセルに表示する仕組みはCELL関数のfilename
シート名をそのまま返してくれる専用の関数は、少なくともExcel 2019までのExcelには用意されていません。代わりに使うのが CELL 関数です。=CELL("filename",A1) と入力すると、そのブックの保存場所からシート名までがひとつながりの文字列で返ってきます。
当サイトの実機(Office 2019)で保存済みのブックに入力したところ、C:\ から始まるフルパスに続けて [実験用ブック.xlsx]Sheet1 という形の文字列が表示されました。よく見ると、ブック名が角かっこ [ ] で囲まれていて、閉じかっこ ] のすぐ後ろがシート名になっています。この「 ] より後ろを切り出せばシート名になる」という並びが、この記事で紹介する式すべての土台です。
公式の説明も確認しておきましょう。Microsoft サポートの「CELL 関数」のページでは、filename を指定したときに返る値を『対象範囲を含むファイルのフル パス名 (文字列)。 対象範囲を含むワークシートが保存されていなかった場合は、空白文字列 ("")。』と説明しています。「保存されていなかった場合は空白」という後半部分が、あとで出てくるエラーの話につながってきます。

シート名だけを取り出すコピペ用の式
フルパスの文字列から、] より後ろのシート名だけを切り出すのが冒頭の式です。表示したいセルにそのまま貼り付けてください。
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
![Excel 2019の実機画面。保存済みブックでB2セルにCELL関数がフルパス X:¥[実験用ブック.xlsx]売上表 を返し、B3セルの組み合わせ式が売上表というシート名だけを表示している。B3セルとシート見出しの売上表に赤枠](https://m32006400n.xsrv.jp/wp-content/uploads/2026/07/cap_199916_main.webp)
長い式に見えますが、部品は3つだけです。FIND("]",…) が「 ] が左から何文字目にあるか」を探し、LEN(…) が文字列全体の長さを数えます。全体の長さから ] までの文字数を引けば「 ] より後ろに何文字あるか」が分かるので、その文字数ぶんを RIGHT で右端から取り出す、という流れです。つまり「後ろから、シート名の文字数だけ切り取る」ことをしています。

同じ結果になる書き方として、MID を使った少し短い式もあります。
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)
「 ] の次の文字から31文字取り出す」という意味です。最後の31という数字は適当に大きくしたのではなく、シート名がどんなに長くても31文字までしか付けられない、というExcelの決まりから来ています。この上限については、後ほど実機で試した結果と一緒に詳しくお話しします。
入力の手順はこれだけです。
- シート名を表示したいセルを選びます。表のタイトル欄など、どのセルでも構いません。
- 上の式をコピーして、セルに貼り付けます。
- Enterキーで確定します。ブックが保存済みなら、そのシートの名前がそのまま表示されます。
- もし「#VALUE!」と表示されたら、ブックを一度保存してから見直してください(理由は後述します)。
式の中のA1は「そのシートのセルを1つ指しておく」ための目印です。当サイトの実機で、参照をB2に変えた式と、A1に文字を入力した状態の式も試しましたが、どちらも結果は変わらずシート名が表示されました。A1の中身は結果に影響せず、A1でなくても動くわけです。それでも、どのシートにも必ずあるA1にしておくのが分かりやすい定番です。ただし、このA1を省略してよいかというと…ここに、この記事でいちばんお伝えしたい落とし穴があります。
A1を省略した式は違うシートの名前が出ることがある
ネット上の解説には、参照を省略した =CELL("filename") の形を紹介しているものもあります。一見同じように動くのですが、当サイトの実機(Office 2019)で試したところ、はっきりとした違いが出ました。
実験では「売上表」と「経費表」という2つのシートを作り、両方に省略形の式を入れました。経費表を開いた状態で再計算(Excelが式を計算し直す動作で、F9キーで手動でも起こせます)を行うと、売上表のセルまで含めて両方のシートに「経費表」と表示されます。今度は売上表を開いた状態で再計算すると、両方とも「売上表」に変わりました。つまり省略形の式は、自分のシートの名前ではなく「再計算した瞬間に開いていたシート」の名前を、全シートに書き込んでしまうのです。対照実験として同じ2シートに置いたA1付きの式は、どちらの状態でも常に自分のシート名を返し続けました。
下の画像は、いったん売上表を開いた状態で再計算したあと、再計算をはさまずに経費表のタブへ切り替えたところです。タブを切り替えただけでは再計算が走らないため、経費表を見ているのに省略形の式は売上表のまま固まっています。

これは公式の説明とも符合します。前述のCELL関数のページには『参照引数を省略しても、次の理由により、特定のセルに関する情報が確実に生成されることはありません。』という注意書きがあり、参照は数式に含めることが推奨されています。どのタイミングで再計算が走るかは環境によって変わるため、省略形は「いつ、どのシートの名前に化けるか分からない」式だということです。
式の「,A1」は飾りではなく、違うシート名が表示される事故を防ぐ命綱なので、必ず付けてください。省略形はふだん正しく見えていることが多いのが厄介なところで、印刷や共有などの操作をきっかけに再計算が走ると、その瞬間に全シートの名前が入れ替わる、という気づきにくい壊れ方をします。手打ちのミスをなくすために入れた式が、手打ちより厄介なミスを生んでは本末転倒です。
保存していないブックでは#VALUE!エラーになる
もうひとつ、初めての方が最初につまずくのがこれです。新規ブックに式を貼ると、正しい式なのに「#VALUE!」と表示されることがあります。
当サイトの実機(Office 2019)で新規ブックを開いて確かめたところ、保存する前は =CELL("filename",A1) 単体が空欄(空の文字列)になり、シート名を切り出す組み合わせ式のほうは #VALUE! エラーになりました。そのままブックを「実験用ブック.xlsx」という名前で保存すると、単体の式にはフルパスと [実験用ブック.xlsx]Sheet1 が現れ、組み合わせ式も「Sheet1」を正しく表示しました。

理由は単純で、保存前のブックにはまだファイル名がないからです。公式の説明にあったとおり、保存されていないブックでは filename が空白文字列になります。空っぽの文字列には ] が存在しないので、FIND("]",…) が探し物を見つけられずにエラーを返す、という仕組みです。#VALUE!は式の間違いではなく「このブックはまだ保存されていません」というサインなので、一度保存すれば直ります。式を打ち直したり削ったりする前に、まず上書き保存を試してください。
なお、保存しても直らないケースとして「環境そのものが対応していない」場合があります。公式CELL関数ページの filename の項には『この値は、Excel for the web、Excel Mobile、Excel Starter ではサポートされていません。』というメモが添えられています。無料のブラウザー版(Excel for the web)やモバイル版では、土台になる filename 自体が使えないため、この記事で紹介したどの式も動きません。式を貼っても反応がないときは、お使いのExcelがデスクトップ版かどうかも確かめてみてください。
シート名の上限は31文字で使えない記号が7つある
MIDの式に出てきた「31」の話をここでまとめます。Microsoft サポートの「シートの名前を変更する」のページには、シート名の制約として『31 文字以上は入力できません。』と書かれています。また、使えない文字として『特殊文字の / \ ? * : [ ]』が挙げられています。
この日本語を素直に読むと「最大30文字まで」のようにも見えます。そこで当サイトの実機(Office 2019)で「あ」を31個並べたシート名を付けてみたところ、問題なく成功し、32個にした瞬間にエラーになりました。つまり実際の上限は31文字ちょうどで、公式の英語版ページでは、シート名で「してはいけないこと」のリストに「Contain more than 31 characters」(31文字を超えてはならない)と書かれており、上限31文字ちょうどという実測結果はこちらと一致します。日本語ページの「31 文字以上」は、この英語表現の直訳のゆれとみられます。あわせて分かったのが全角の扱いです。シート名の上限はバイト数ではなく文字数で、全角でもきっかり31文字までです。このとき実機で返ってきたエラーメッセージには、使えない7つの記号(: \ / ? * [ ])も列挙されていて、公式ページの記載と一致していました。31文字の名前を付けたシートでは、RIGHTの式とMIDの式の両方を試し、どちらも31文字の名前全体を欠けなく表示することを確認しています。
もうひとつ、古い解説でよく見る「ファイル名に ] を含めるとFINDの位置がずれて式が壊れる」という注意についても実機で確かめました。まず、Excelの中から「予算[2026].xlsx」という名前で保存しようとすると、「ファイルにアクセスできませんでした」というメッセージが出て保存できませんでした。では、Excelの外で作られた角かっこ入りのファイルならどうか。ファイル側の名前を「予算[2026].xlsx」に変えてから開いてみると、こちらは開けたのですが、Excelはブック名を「予算(2026).xlsx」と丸かっこに読み替えて扱い、CELL関数が返すパスも X:\[予算(2026).xlsx]売上表 という形になりました。ブック名を囲む [ ] はCELL関数が付けるもので、名前の中にあった角かっこは丸かっこに変わっています。当サイトの実機で試した範囲では、保存でも開封でも、角かっこがブック名として式に混ざる状態は作れませんでした。少なくともExcel 2019では、この式が ] の位置ずれで壊れる場面を再現できなかった、というのが実測の結論です。
TEXTAFTERを使う新しい式はOffice 2019では動かない
最近の解説記事では、もっと短く書ける =TEXTAFTER(CELL("filename",A1),"]") という式を見かけます。「TEXTAFTER 関数」は公式ページで『指定された文字または文字列の後に出現するテキストを返します。 これは、TEXTBEFORE 関数の反対です。』と説明されているとおり、] の後ろを一発で取り出せる便利な関数です。
ただし対応バージョンに注意が必要です。公式ページの適用対象は Excel for Microsoft 365(Windows・Mac)と Excel 2024(Windows・Mac)で、買い切り版のExcel 2019や2021は含まれていません。実際、当サイトの実機(Office 2019)で入力したところ、結果は #NAME? エラーでした。ついでに、名前が似ていて紛らわしい =SHEET() と =SHEETS() も実機で試しましたが、返ってきたのは「1」と「2」という数字だけ。これらはシートの番号と枚数を返す関数で、シート名は取れません。
| 式 | 使える バージョン |
実機のExcel 2019 での結果 |
|---|---|---|
| RIGHT+LEN+FIND (この記事の式) |
Excel 2019で実機確認 (RIGHT等は旧来の 買い切り版にも存在) |
シート名が 表示された |
| MID+FIND (短い別解) |
Excel 2019で実機確認 (RIGHT等は旧来の 買い切り版にも存在) |
シート名が 表示された |
| TEXTAFTER | Microsoft 365 Excel 2024 |
#NAME? エラー |
| SHEET/SHEETS | Excel 2013以降 | 番号と枚数のみ (名前は取れない) |
職場や自宅のExcelが買い切り版なら、どのバージョンでも動くRIGHTの式を選んでおくのが確実です。Microsoft 365をお使いの方でも、ブックを2019や2021の人に渡す可能性があるなら、TEXTAFTERではなくRIGHTの式にしておくと#NAME?エラーの心配がありません。
シート名を変更するとセルの表示は自動で追いかける
この式のいちばんの利点は、シート名を変えたときに現れます。シート名の変更は、公式ページの案内どおり『シート タブをダブルクリックし、新しい名前を入力します。』という操作がいちばん簡単です。シートタブを右クリックして「名前の変更」を選んでも同じことができます。
当サイトの実機(Office 2019)で、式を入れたシートのタブをダブルクリックし、名前を「経理用シート」に変えてみました。名前を確定した直後に、式を入れたセルの表示も「経理用シート」に切り替わっていることを画面で確認できました。名前を変えると自動計算が働くため、F9キーを押さなくても式は新しい名前を返します。手打ちの見出しでは起きていた直し忘れが、この式なら起きようがないわけです。ただしこれは計算方法が既定の「自動」になっている場合の動きです。手動計算に設定しているブックでは、F9キーで再計算するまで表示が変わらないことがありますが、これは一般的なExcelの計算方式の仕様として補足するもので、当サイトの実機(自動計算モード)では未検証です。

- 参照の「,A1」は省略しない(省略すると別のシート名が全シートに出ることがある)
- ブックを保存してから使う(保存前は#VALUE!になるのが正常)
- 買い切り版のExcelではTEXTAFTERでなくRIGHTの式を使う
よくある質問
全部のシートにまとめて式を入れる方法はありますか
シート見出しをCtrlキーを押しながら複数選択し、その状態で式を入力すると、選んだ全シートの同じセルに一度で入ります(Excelのグループ編集機能)。式の中のA1はそれぞれのシートにある自分のA1を指すため、各シートには自分自身の名前が表示されます。当サイトの実機では、2つのシートに置いたA1付きの式がそれぞれ自分のシート名を返すことを対照実験で確認しています。入力が終わったら、選択解除のためにどれか1つのシート見出しをクリックするのを忘れないでください。
式を入れたのに違うシートの名前が表示されます
式の参照「,A1」が抜けた省略形になっていないかを最初に確かめてください。当サイトの実機実験では、省略形の式は再計算した瞬間に開いていたシートの名前が全シートに表示されました。式の中のCELLすべてに「,A1」が入っているかを確認し、抜けていれば補ってから再計算すれば直ります。
ヘッダーやフッターにシート名を入れられますか
入れられます。「挿入」タブの「ヘッダーとフッター」を開くと、リボンにシート名を挿入するボタンが用意されており、クリックすると印刷時にそのシートの名前が自動で入ります。セルの式とは別の仕組みなので、こちらはCELL関数を使わずに済みます。印刷物の欄外にシート名を入れたいだけなら、この方法のほうが手軽です。
日本語のシート名でもこの式は使えますか
使えます。FIND関数が探しているのはブック名の後ろの ] という記号だけなので、シート名が日本語でも英語でも切り出しに影響しません。当サイトの実機では、全角31文字の名前を付けたシートでも、式が名前全体を欠けなく表示することを確認しています。
取り出したシート名は他の用途にも使えますか
使えます。代表的なのはINDIRECT関数との組み合わせで、シート名の文字列をもとに別シートのセルを参照する、といった応用ができます。月ごとのシートから同じ位置のセルを集計する台帳などで役立つ考え方ですが、まずはこの記事の式でシート名を確実に表示できるようにしてからで十分です。
シート名の式が自分のブックでうまく動かないときは
ここまでの内容で、シート名の自動表示はひととおり作れるはずです。とはいえ、実際のブックは記事のとおりの単純な作りではないことが多く、「式を貼ったのにエラーの意味が分からない」「A1のところを自分の表に合わせてどう変えればいいの」と、画面の前で 「なんかよくわからないなぁ…。」 と手が止まってしまうこともあると思います。そんなときは、おひとりで悩まずに からメッセージを送ってください。
出典・引用サイト
最終確認日 2026年7月18日/記事作成 uri uri


コメント