• ベストアンサー

Excel で、こんなこと出来ますか?

いつも大変お世話になっております。 Excel のワークシートにつけている名前を そのまま、セルに反映することは出来るのでしょうか? シートの名前に番号をつけていくのですが、作成する表にもそのシート番号を記載しなくてはなりません。 そこで、シートに名前をつけたら、その表の方も連動して番号が表示されたらなぁ~と、楽なことを考えたのであります。(爆) 番号を入力すること自体は手間ではないのですが、時々、忘れることもあるので、出来たら良いなぁ~、と。 出来ないようでしたら、あきらめます。(笑) よろしくお願い致します。

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

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

ワークシート関数で =cell("filename", $A$1) とすると、パス[ブック名]シート名 という形式のテキストが得られます。ということは =mid(cell("filename", $A$1), find("]", cell("filename", $A$1), 1)+1, 30) というふうにすると、シート名が抽出できるわけです。 私はコレを使って、シート名を「2003年2月」などとすると該当する月のカレンダーを 生成するブックを作りました。便利ですよ。 ちなみにcell("filename")だけでも一見ウマくいきそうですが、こいつは最後に変更された シート名を返すのでダメです。必ず第2パラメータを指定してください。

ajyapa-paso
質問者

補足

さっそくの御回答ありがとうございます。 試してみたのですが……『#VALUE』と表示されてしまいました。(涙) おそらく…というよりも、絶対といってよいほど私めの入力の仕方が悪いのだと思います。 そこで、再び質問させていただきます。 『ワークシート関数』というのは、配列数式のようになにか特別な操作が必要なのでしょうか? そのシート名を表示させたいセルに 「=mid(cell("filename", $A$1), find("]", cell("filename", $A$1), 1)+1, 30)」 と入力したのではマズかったのでしょうか? さらに、この「$A$1」というのは、シート名を表示させたいセルのことなのでしょうか? 無知な私めに御教授いただければ幸いです…。 (すみません…。)

その他の回答 (2)

回答No.3

> 『#VALUE』と表示されてしまいました。 一度も保存されたことがない、早い話がまだファイル名を持たないブックでは、 cell("filename")が何の値も返さないのでそうなります。保存してファイル名を付けて やってください。ほかにマズイ所はないです。

ajyapa-paso
質問者

お礼

御指摘の通り、ファイル名をつけて再び実行してみたところ、うまくいきましたっ♪  度々のアドバイス、ありがとうございました。 またなにかありましたら、よろしくお願い致します。

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.1

マクロを使うしかないと思います。他に思いつきません。 参考URLにシート名を変更したときにイベントを発生させる サンプルがあります。これを利用してみては如何でしょうか。

参考URL:
http://www.geocities.co.jp/SiliconValley-SanJose/9236/subdoc2/0211.htm
ajyapa-paso
質問者

お礼

マクロですかぁ……。(苦手/笑) なるほど、なにごともチャレンジでありますねっ! 時間のある時にトライしてみようかと思います。 早速の御回答ありがとうございました。 またなにかありましたら、よろしくお願い致します。

関連するQ&A