業務日報を作成するときなど、データ内にシート名を表示させたいことはありませんか?実は関数やVBAを使うことで、簡単にシート名を取得することが可能です。また、シート名の取得ができればセルに表示できるほか、他のシートやファイルに参照したり、日付や条件に応じて自動更新したりと、便利な使い方が多くあります。

この記事では、Excelでシート名を取得する方法と、その活用テクニックを紹介します。

Excelのシート名をSUBSTITUTE関数で取得する方法

まずは、SUBSTITUTE関数を使って、Excelのシート名を取得する方法を紹介します。比較的簡単な手順なので、コピペをするなどして活用してください。

【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【1】まずエクセルシートの数式タブを開き、「名前の定義」をクリックします。、『オトナライフ』より引用)
【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【2】続いて、名前(N)に「book」を、参照範囲(R)には「=GET.WORKBOOK(1)」と入力して、「OK」をクリックします。、『オトナライフ』より引用)
【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【3】再度「名前の定義」をクリックし、今回は名前(N)には「doc」を、参照範囲(R)には「=GET.DOCUMENT(88)」と入力して「OK」をクリックします。、『オトナライフ』より引用)
【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【4】セルに「=SUBSTITUTE(INDEX(book,1),”[“&doc&”]”,””)」と入力すると一番左のシート名が表示されます。うまく反映されない場合は手動で一度更新すると、反映されることがあります。、『オトナライフ』より引用)
【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=「名前の定義」を使用したため、保存時に上記画像のようなメッセージが出てきます。メッセージに従って、マクロ有効ブックで保存してください。、『オトナライフ』より引用)

【コピペ用】シート名を自動取得する関数

シート名を自動取得するための関数は以下の通りです。

=SUBSTITUTE(INDEX(book,1),”[“&doc&”]”,””)

Excelのシート名を関数を使用して自動取得する方法

上記の関数は便利ですが、一つ問題があります。それは、シート名がうまく反映されない際に、手動で更新する必要があるケースが存在すること。少々、面倒だと感じる方もいるのでは。

そこで、別の関数を使ってシート名を自動取得する方法もセットで紹介します。後半の数式については少し長めなため、少し混乱することもあるでしょう。コピペをするなどして活用してください。

【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【1】今回はB2セルにシート名である「1月」を表示させるようにします、『オトナライフ』より引用)
【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【2】B2セルに「=CELL(“filename”,B2)」と入力してEnterキーを押すと、シート名以外にも、ファイルパスなどがすべて表示されます、『オトナライフ』より引用)
【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=【3】先ほどの数式に少し手を加えて、シート名の部分だけを表示指せるようにすれば、「1月」とセルに表示されます、『オトナライフ』より引用)

【3】のようにシート名のみを表示させるようにするには、以下のような数式に変更する必要があります。

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

カッコの位置に注意して入力しましょう。場所を間違った場合エラーになります。なお、数式の構成としては、以下のようになっています。関数に興味がある場合は参考までに。

  1. シート名とファイルパスをすべて取得(CELL関数)
  2. シート名とファイルパスの文字数を取得(LEN関数)
  3. ]の記号が何文字目にあるかを確認する(FIND関数)
  4. 2.と3.の差を計算する(今回は112-110=2という結果に)
  5. シート名とファイルパスの文字列の右から2文字だけ表示させる(RIGHT関数)

【コピペ用】シート名取得の関数

シート名取得のための関数は以下の通りです。

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

【コピペで簡単】Excelで「シート名」を取得する方法!関数/VBAを使った手順
(画像=この関数では、「CELL関数」でシート名とファイルパスを取得しています。また、「LEN関数」で文字数を取得、「FIND関数」で”]”が何番目にあるかを探しています。「RIGHT関数」では、ここまでの式を用いることで、シート名だけを抽出しています、『オトナライフ』より引用)