- ベストアンサー
Excel で、こんなこと出来ますか?
いつも大変お世話になっております。 Excel のワークシートにつけている名前を そのまま、セルに反映することは出来るのでしょうか? シートの名前に番号をつけていくのですが、作成する表にもそのシート番号を記載しなくてはなりません。 そこで、シートに名前をつけたら、その表の方も連動して番号が表示されたらなぁ~と、楽なことを考えたのであります。(爆) 番号を入力すること自体は手間ではないのですが、時々、忘れることもあるので、出来たら良いなぁ~、と。 出来ないようでしたら、あきらめます。(笑) よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ワークシート関数で =cell("filename", $A$1) とすると、パス[ブック名]シート名 という形式のテキストが得られます。ということは =mid(cell("filename", $A$1), find("]", cell("filename", $A$1), 1)+1, 30) というふうにすると、シート名が抽出できるわけです。 私はコレを使って、シート名を「2003年2月」などとすると該当する月のカレンダーを 生成するブックを作りました。便利ですよ。 ちなみにcell("filename")だけでも一見ウマくいきそうですが、こいつは最後に変更された シート名を返すのでダメです。必ず第2パラメータを指定してください。
その他の回答 (2)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
> 『#VALUE』と表示されてしまいました。 一度も保存されたことがない、早い話がまだファイル名を持たないブックでは、 cell("filename")が何の値も返さないのでそうなります。保存してファイル名を付けて やってください。ほかにマズイ所はないです。
お礼
御指摘の通り、ファイル名をつけて再び実行してみたところ、うまくいきましたっ♪ 度々のアドバイス、ありがとうございました。 またなにかありましたら、よろしくお願い致します。
- BlueRay
- ベストアンサー率45% (204/453)
マクロを使うしかないと思います。他に思いつきません。 参考URLにシート名を変更したときにイベントを発生させる サンプルがあります。これを利用してみては如何でしょうか。
お礼
マクロですかぁ……。(苦手/笑) なるほど、なにごともチャレンジでありますねっ! 時間のある時にトライしてみようかと思います。 早速の御回答ありがとうございました。 またなにかありましたら、よろしくお願い致します。
補足
さっそくの御回答ありがとうございます。 試してみたのですが……『#VALUE』と表示されてしまいました。(涙) おそらく…というよりも、絶対といってよいほど私めの入力の仕方が悪いのだと思います。 そこで、再び質問させていただきます。 『ワークシート関数』というのは、配列数式のようになにか特別な操作が必要なのでしょうか? そのシート名を表示させたいセルに 「=mid(cell("filename", $A$1), find("]", cell("filename", $A$1), 1)+1, 30)」 と入力したのではマズかったのでしょうか? さらに、この「$A$1」というのは、シート名を表示させたいセルのことなのでしょうか? 無知な私めに御教授いただければ幸いです…。 (すみません…。)