セルでシート名を参照する簡単な方法

台帳的なブックで同じフォーマットのシートがたくさん含まれる場合などで、各シートのセル内でシート名を参照したいときがあると思います。検索してみたところ、関数で処理する方法が見つかりました。が、ちょっと使いづらいので、VBAで処理する方法も考えてみましたので、それらを比較したいと思います。

検索した関数で処理する方法

例えば、このページなどで紹介されています。
参照したいセルに以下の関数を入力します。途中、指定しているA1というセルは、同じシートのどのセルでも良いようです。

この方法のメリットは、VBAを使わないことですが、デメリットは、たくさんあると思います。

  • 関数が長く覚えきれないこと
  • 一度も保存されてないファイルでは使えないこと
  • ファイル名に”]”が含まれる場合は使えないこと

VBAで処理する方法

簡単なユーザー定義関数を作ってやります。標準モジュールを作成し、その中に以下のコードを記述します。

この関数を使用するときも同様に任意のセルを引数に指定します。

この方法のデメリットは、VBAを使うため最終的には拡張子をxlsmで保存しなければならなくなりますが、場合によってはそれが許容されない場合は使えないですね。代替方法としてアドインを作るということも考えられますが…

メリットとしては、関数で処理する方法のデメリットであった、一度も保存されてないファイルやファイル名に”]”が含まれる場合でも使えることです。

VBAに慣れている人であれば、先の関数よりも思い出してすぐに作れるのではないでしょうか。

関連記事