Excelで業務日報を作成する場合などに「シート名をセルに表示したい」際、皆さんはどのように作業しますか?シート名をそのままコピーする、という手法が一般的でしょう。しかし1-2回の作業ならともかく、100回も同じ作業をすると大変です。

シート名を表示させることは、実は関数とマクロで比較的簡単に可能。今回はシート名を表示させる方法を画像付きで分かりやすくご紹介します。

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

まずは手軽に実装できる、関数を用いた方法をご紹介します。

後半の数式については少し長めなため、少し混乱することもあるでしょう。コピペをするなどして活用いただけると幸いです。

Excelで「シート名」を取得する方法 – 関数/VBAを使...の画像はこちら >>

【1】今回はB2セルにシート名である「1月」を表示させるようにします

Excelで「シート名」を取得する方法 – 関数/VBAを使った手順を画像付き解説
Excelのシート名を関数を使用して取得する方法2

【2】B2セルに「=CELL(“filename”,B2)」と入力してEnterキーを押すと、シート名以外にも、ファイルパスなどがすべて表示されます

Excelで「シート名」を取得する方法 – 関数/VBAを使った手順を画像付き解説
Excelのシート名を関数を使用して取得する方法3

【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関数)

Excelの複数シート名を「VBA」で一括取得する方法

VBA(マクロ)では複数のシート名を一括で取得することが可能です。

今回のVBAは比較的簡単に実装可能なので、VBAをまだ一度も使ったことがない人でもぜひチャレンジしてみてくださいね!

Excelで「シート名」を取得する方法 – 関数/VBAを使った手順を画像付き解説
Excelの複数シート名を「VBA」で一括取得する方法1

VBAを起動するため、Alt + F11キーを押します。表示のタブの中にイミディエイトウィンドウがあるので、クリックします

Excelで「シート名」を取得する方法 – 関数/VBAを使った手順を画像付き解説
Excelの複数シート名を「VBA」で一括取得する方法2

上の画像のように、画面下にウィンドウが表示されます。ここに「For Each i In ThisWorkbook.Sheets: debug.print i.name : next i」をコピー&ペーストし、Enterキーを押すと、下にシート名の一覧が表示されます

Excelで「シート名」を取得する方法 – 関数/VBAを使った手順を画像付き解説
Excelの複数シート名を「VBA」で一括取得する方法3

表示されたシート名一覧をコピーし、セルに貼り付けすれば完了です

まとめ

今回はExcelでシート名を取得する方法について、関数とVBA(マクロ)の2つをご紹介しました。

VBAの方については、シート名を人名にしていて、メンバーの名前を一覧取得する時には活躍できると感じます。一方で関数の方は、そのシート名を表示できるため、今回の例のような月の表示など、シート名が変わるような場面での活用が期待できそうです。

By OTONA LIFE
編集部おすすめ