Excelのシート名称をセルに表示する

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

ExcelのCELL関数、FIND関数、MID関数を使ってシート名称をセルに表示する方法について記載します。

ワークシート名称_13

(使用Excel;2010)


参考 Office Support;CELL関数 web
参考 microsoftサポート;[XL2003]シート名に関する仕様および制限について web(リンク切れ)
参考 microsoftサポート;Excel で VBA を使用した場合、シート名を 31 文字以上の名前に変更するとエラー メッセージが表示されシートを移動させる処理が行えなくなる(リンク切れ) web

シート名称をセルに表示する方法

Excelでシート名称をセルに表示するには、CELL関数、FIND関数、MID関数を使います。

CELL関数

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

(microsoftサポート;CELL関数より)

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

CELL関数の使い方

例えば、任意のExcelファイルを用意して保存し、A1セルに次のように入力した場合、下の画像のように表示されます。

「=CELL(”filename”,$A$1)」

ワークシート名称_11

CELL関数で「”filename”」を指定すると、ファイル名称とシート名称を含んだ実行中のExcelファイルの情報が長い文字列で表示されます。(上の画像の赤い枠囲み部分が、ファイル名称とシート名称になります)

このシート名称を返すというCELL関数の性質を利用してシート名称のみをセルに表示させることができます。

FIND関数で「 ] 」を探す

上の画像のとおり、CELL関数でシート名称を表示させた場合、シート名称(上記の例の場合、「Sheet3」)の直前に「 ] 」という文字が表示されています。

この「 ] 」という文字を含んでシート名称が表示されるという性質を利用して、任意のセルにシート名称を表示させるようにします。

最初にFIND関数を使って、「 ] 」までの文字数を数えます。式は次のとおりです。

「=FIND(”]”,A1,1)」

この式は、「A1セルのなかで「 ] 」のある文字数を1文字目から数える」という記述になっています。(「CELL関数の式がA1セルに入力されている」という前提で記載しています。実際には「A1」を「CELL(”filename”,$A$1)」に変えて使用します。)

MID関数

次にMID関数を使って、「 ] 」の後にある文字を表示させます。例えば、「 ] 」が47文字目にある場合は、次のような式になります。

「=MID(A1,48,31)」

これは「A1セルの48文字目から31文字を表示させる」という式になります。

MID関数を利用する場合の開始位置

FIND関数によって見つけた文字数に1文字を加えた文字数を指定します。実際には文字数を記載するのではなく、FIND関数の返り値+1という式になります。(下記のまとめを参照してください。)

MID関数を利用する場合に表示する文字数を31文字に指定する理由

ネットで「シート名称の文字数」を検索すると、検索結果のなかに次のページがありました(リンク切れ)。Excelのシート名称は最大31文字ということなので、MID関数を使って表示する文字数は「31」にしてあります。

(下記のページは削除されてしまっていましたが、同じように31文字が最大文字数であると書いてあるサポートページがありますので、リンクを貼っておきます。→ このページも削除されてしまいました。)

■ LINK(microsoftサポート;Excel で VBA を使用した場合、シート名を 31 文字以上の名前に変更するとエラー メッセージが表示されシートを移動させる処理が行えなくなる(リンク切れ) web
■ LINK(microsoftサポート;[XL2003]シート名に関する仕様および制限について(リンク切れ)より) web

「(microsoftサポート;[XL2003]シート名に関する仕様および制限について(リンク切れ)より)」は公式サポートでしたが、削除されてしまったようです。以前、表示されていた画面を貼っておきます。中ほどにExcel97以降ではシート名の文字数は31文字だと記載されています。

ワークシート名称_22

実際に入力してみました。

ワークシート名称_12

「1~0」を繰り返し3回入力し(30文字)、最後に「1」を入力したところでそれ以上文字を入力することができなくなってしまいました。

まとめ(CELL関数、FIND関数、MID関数を組み合わせてセルにシート名称のみを表示)

以上のCELL関数、FIND関数、MID関数を組み合わせて任意のセルにシート名称を表示させると次のようになります。

「=MID(CELL(“filename”,$A$1),FIND(“]”,CELL(“filename”,$A$1),1)+1,31)」

実際に入力してみると次のとおりです。

ワークシート名称_13

この方法を使うと、シート名称の「月数」を入力するだけで、シートの表題にその月数を表示させることができたりしてちょっとしたことですが便利になります。

私は、月ごとにシートを分けるような方法で現金出納帳等を作成する場合に使っています。


■□◆◇ 編集後記 ◇◆□■

昨日は、一昨日の検査の影響かどうかわかりませんが、良く眠れなかったため一日ゆっくりしてしまいました。