• ベストアンサー

エクセルにて シート名を取得し、数式に活用するには?

1月というシート名と、2月というシート名があります。 2月のシートのセルB1には、='1月'!A1という式が入っています。 月が3月に変わった時に、2月のシートをコピーして、 シート名を3月と書き換えると、3月のシートのセルB1の式が ='2月'!A1と自動でなるようにしたいのです。 VBAを使わずに実現できる方法が有りますか? 3月のシートのセルB1の式を='2月'!A1に自動で変えたいと 言いましたが、実際には ='(シート名の数字を取得-1)月'!A1 といった数式にしたいのですが、可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

cell関数を使えば簡単です。 =cell("filename", $A$1) とすると、「ディレクトリ[ファイル名]シート名」の形式でファイ ル名が返ってきますので、"]"より後ろがシート名なわけです。する と自分のシート名を取り出すには =mid(cell("filename", $A$1),find("]",cell("filename", $A$1), 1)+1,99) とすればいいと判りますね。今回は最後の99は3でもいいです。これ をたとえばE1に書いておいたとしますと、B1には =indirect(left($E$1,len($E$1)-1)-1&"月!$a$1") でオッケー。

VitaminBB
質問者

お礼

出来ました。 いつも半信半疑で質問するのですが、 毎回すばらしい回答をして下さる人がたくさんいてすごいです。 回答ありがとうございました。