• ベストアンサー

エクセル2000のCELL関数

便宜上、シートの左上にタイトルのようなものを表示させたくて、セルA1に =CELL("filename") という関数を入力しました。 まず最初に1つのシートにこの関数を入力して、あとはそのシートをコピーして使っているのですが、複数のシートのうちの1つのシート名を変更すると、なぜか全てのシート名が同じように変更されてしまいます。 アクティブシート以外のシート名を変更しないようにするにはどうしたらいいでしょうか。

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

  • ベストアンサー
  • trytrytry
  • ベストアンサー率37% (13/35)
回答No.1

=CELL("filename",A1) としてみるとどうでしょう?

bari_saku
質問者

補足

おおっ!できました!! ですが「A1」があるとなしで、なぜ結果が変わるのでしょうか?(重ね重ねの質問をすみません)

その他の回答 (5)

  • comv
  • ベストアンサー率52% (322/612)
回答No.6

みなさん こんばんは >ですが「A1」があるとなしで、なぜ結果が変わるのでしょうか ヘルプより 書式は CELL(検査の種類,対象範囲) 検査の種類 "format" 対象範囲を含むファイルの名前 (絶対パス名) を表す文字列 対象範囲 情報が必要なセルを指定します。何も指定しないと、最後に変更したセルについて、検査の種類-に指定した情報が返されます。 ------------------------------------------------ で対象範囲をSheet名なしのセル番地を記入すれば 当然、対象は自己シートと判断されるためです。 A1でもB2でもA10でも同じです

bari_saku
質問者

お礼

こんにちは。 なるほど、Sheet名なしのセル番地を記入した場合は、そのシートのみ有効になるという仕様なのですね。 これですっきりしました。 反面、セル番地を記入しない場合は全てのシートに有効になるようですが、これはこれで使いようによっては便利な機能かもしれません。覚えておくことにいたします。 ご回答、どうもありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

>1つのシートにこの関数を入力して =CELL("filename")と入れたと言うことですね。 すると本来の=CELL(検査の種類[,対象範囲]) の「対象範囲」が無いので、ActiveCellのシート(ActiveSheet)が対象シート・対象範囲になったと考えられます。 Sheet3で=CELL("filename")と入れるとSheet3ですが Sheet4に複写するとSheet4ではSheet4、Sheet3でもSheet4になります。Sheet3のA1(A1にこの関数が入っているとして)でエンタを押すとSheet3になりSheet4もSheet3になります。このことをおしゃっているのですね。複写元の来歴を覚えていて複写元まで変えるようです。 ハッキリさせるには=CELL("filename",Sheet3!B1)のようにすれば、Sheet3の議論の余地がありません。しかしこれではこの関数を使う意味が無い。Sheet名を変更した時に 変えてくれるメリットぐらいでしょうか。 FileNameといってながら、Sheet名までなぜ出るのか不思議ですが、Sheet名が出る=Cells("SheetName")といった関数がが欲しいとこの頃つくづく思っています。

bari_saku
質問者

お礼

こんにちは。 ええと…No.1さんの所にも書きましたが、=CELL("filename",A1)と入力すると、それぞれのシート名がきちんと表示され、アクティブシート以外の名前が変わることがありません。 確かに普通に考えれば、imogasiさんのおっしゃる通りの結果が出そうなものですが…なぜでしょう??? SheetName関数については私もまったく同意見です。 FileNameですとパスから何から何まで表示されてしまうので、シート名だけを表示させるのに、また余計なプロセスを踏まなくてはなりませんし。 ご回答、ありがとうございました。

  • XO-GE
  • ベストアンサー率20% (1/5)
回答No.4

#2,trytrytryさんの回答が正解でしょう。 つまり、「A1」の部分に何も指定しない場合は最後に変更したセルのシート名が入るのでしょう。 =CELL("FILENAME", Sheet2!A1) とすると、どのワークシートに書いてもSheet2が表示されるはず。

bari_saku
質問者

お礼

こんにちは。 どうやらエクセルの仕様の問題だったようです。 ある程度わかっているつもりでも、仕様をよく理解していないと思わぬ所でつまづいてしまうのですね。大変勉強になりました。 ご回答、どうもありがとうございました。

  • kojitti
  • ベストアンサー率32% (449/1386)
回答No.3

当該ファイルが保存されていなかったからです。 保存すれば、 =CELL("filename") で出力されますよ。

bari_saku
質問者

補足

すみません、こちらは「保存」をすると本来のシート名に変わるということでしょうか? 早速トライしてみたのですが、他のシートのタブをダブルクリックすると、変わってしまいます。 「保存」をして、再度開くとちゃんと表示されていましたが…

  • trytrytry
  • ベストアンサー率37% (13/35)
回答No.2

書式はこうなります。 =CELL(検査の種類[,対象範囲]) で、ヘルプに書いてあったのですが、 対象範囲 情報が必要なセルを指定します。何も指定しないと、最後に変更したセルについて、検査の種類に指定した情報が返されます。 だそうです。 しかし、"filename"(対象がセルで無い場合)については詳しく書いていないので、適当に試していたら"A1"で出来ました。

bari_saku
質問者

お礼

こんにちは。 て、適当…(汗) いえ、これは知識より経験がモノを言ったという好例なのでしょう!! 何度もありがとうございました。 もしかしたら他の説も出てくるかもしれませんので、もう少し締め切らずにおいておこうかと思います。

関連するQ&A