• ベストアンサー

Excelのrsn関数が即時反映されない

シートの名前を取得するrsn関数を使っているのですが、シート名称を変更してもすぐに反映されません。 セルA1には =rsn() と入力されているのですが、 1 シートの名前を変更する 2 セルA1をダブルクリックしてセル内の編集状態にする 3 enterキーを押して編集を確定させる→ここでやっとA1の値が変更されます。 上書き保存して閉じ、再度開いても同様で、1~3の操作をしないとセルが変更されません。 計算方法は自動にしています。 rsn関数を使うシートをこれから100枚ほどつくるつもりなのですが、助けて下さいませ!><

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

ブックを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける function rsn2()  application.volatile  rsn2 = application.caller.parent.name end function ファイルメニューから終了してエクセルに戻る 任意のセルに =rsn2() と記入,単純にシート名を変更して動作確認してみる。 #単に,今ご利用のrsn関数がよろしくないだけです。  といってもそれの手直しはご容赦。

guess_manager
質問者

お礼

標準のrsnより使い勝手がいいですね。 こんなことができるとは、そしてそれをすぐに答えられるというのも驚きです。 ありがとうございました!

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 rsn関数とはおそらくマクロを使用する事で新たに作られたユーザー定義関数だと思われます。  その様なユーザー定義関数を使用せずとも、元々Excelに標準装備されている関数を組み合わせた =REPLACE(CELL("filename",A1),1,FIND("]",CELL("filename",A1),FIND(".xls",CELL("filename",A1))),) という関数でも、シート名を取得する事が出来るのですが、どうしてもrsn関数でなければならないのでしょうか?  尚、上記の関数は、一度も保存された事のない新規Bookでは動作せず、ファイルとして一旦保存されている事が必要です。(一度でも保存されてさえいれば、シート名を変更すると同時に、変更後のシート名が取得されます)

guess_manager
質問者

お礼

この方法は調べて知っていたのですが、長ったらしいのでrsnのほうがいいかなと思っていましたが浅はかでした! ちゃんと動作しております。ありがとうございます。

関連するQ&A

  • エクセルの関数が反映しない

    ある日突然エクセルの 関数 が反映しなくなってしまいました。ボックスには関数が入っているのに、数字のみならず他のシートの反映等も全てです。ボックスを選んで再度Enterを押せば変更します。2003なのでサポートにかけたら4200円と言われて・・・PCはVistaです。相互性を思い2003にしたのですが、、、困っています。宜しくお願いします

  • 【エクセル】シート1のデータを他のシートへ反映したい

    エクセルのシート1のデータを他のシートへ反映させる方法を教えていただきたく思います。 (検索したのですが、自分の状況とは違っていてわからなかったので新たに質問させていただきます) 具体的には、 シート1のセルA1に日付を入力します。 そうすると、シート2~シート7のセルG4にもそのシート1のA1のデータが表示されるようにしたいのです。 そして、シート1のA1のデータを変更すると、 自動的にシート2~シート7のセルG4のデータも変更されるようにしたいです。 以前は、 =シート1!A1 という式で動いていたのですが、 なぜか急に、一度セルG4を指定してenterキーを押して確定してからでないと データが変わらなくなってしまいました。 自動的に反映されるようにするにはどうすればよいのでしょうか? よろしくお願い致します。

  • エクセル関数をコピーすると結果が正しく反映されません。

    WindowsXP+SP2、Excel2003を使用しています。 表の先頭行に関数を入力すると正しく計算されて表示されますが、下行へ関数をコピーすると計算結果が正しく反映されません。 【例】 1)セル[A1]に「AB」、セル[A2]に「CD」、セル[A3]に「EF」と入っている。 2)セル[B1]に「=ASC(A1)」と入力すると、セル[B1]に「AB」と表示される。 3)セル[B1]の右下の黒十字を下へドラッグすると、セル[B2]には「=ASC(A2)」、セル[B3]には「=ASC(A3)」と関数が正しくコピーされるが、表示される結果は[B2][B3]とも「AB」「AB」になってしまう(本来なら「CD」「EF」のはず)。 4)セル[B2][B3]をそれぞれダブルクリック&Enterキーを押すと正しく計算され、「CD」「EF」と表示される。 こんな状態です。行は数千あり、ひとつひとつダブルクリック&Enterで修正することは出来ません。黒十字のドラッグでも、黒十字のダブルクリックでも、結果は同じです。B列を一旦削除して新たに列を挿入しても、PCを再起動しても同じです。ASCじゃない関数を入れてみても同じ状態です。 うまく説明できたかわかりませんが、状況はわかっていただけたでしょうか?どなたか、この状況の解決方法を教えてくださいますようお願いします!!

  • エクセル関数 シート名をセルに反映させたい

    シート名をセルに反映させたいのですが,以下のようなことができるでしょうか。 =CELL("filename",A1)を使えば,シート名を反映させられるようであることは,ネットで調べて分かったのですが,たとえば,シート2を作成した時に,シート1のA2のセルのところに,自動でシート2の名前を入力できるような関数はありますか?その後,シート3を作成した時に,同様にシート1のA3のところに自動で入力したいのですが,そのようなことが可能でしょうか。 説明が下手で申し訳ないのですが…

  • Excel2000で、書式設定が反映されない

    2002-03-10 03:15:02.000 を 隣のセルで =left(a1,4)&"/"&mid・・・として 2002/03/10 03:15 という形式に直しました。 この結果を値としてコピーして書式をmm/dd(aaa)にしました。 ですがすぐに反映されず、セルを編集状態にしてEnterしてようやく書式が反映されます。 5000行くらいあるので、F2 → Enterを5000回繰り返すのはつらいので、解決方法を探しています。 ファンクションキー9でもだめでした。

  • エクセルの関数に関して

    エクセルの関数で質問があります。Sheet1とSheet2とがあり、Sheet1のセルに数字を入力しEnterキーを押した際に、Sheet2に作成した表に入力されている数字のセルにジャンプする関数を御存じの方

  • エクセル関数について

    エクセルの関数についてなのですが、例えば「セルA3」に「セルB2」の値を表示させるには「=(B2)」と「セルA3」に表示させてます。別のSheetの値も表示できるのでしょうか?例えば「Sheet1.Range("A3")」の値をSheet2のA1に表示させたい場合Sheet2のA1にはどのような関数を入力していけばよいのでしょうか?VBAは使わずに表示したいのですが。関数はまだほとんど使ったことがないので分かる人いたら教えてください。よろしくお願いします。

  • 関数セルをコピーしても動的に反映されない

    エクセル2000を使っています。 何時からか関数セル:例=SUM(A1:A10)を隣のセルにコピーしても結果が動的に反映されず"上書き保存"をすると初めて反映される状態になってしましました。どこかの設定なのでしょうか?宜しくお願いします。

  • excelの関数について

    excelの関数について sheet1、sheet2の二つのシートがあり sheet1のA1セルにsheet2のA1セルのデータを呼び出すために、 次のような式をsheet1のA1セルに入力した =sheet2!A1 通常だと表示が変更されるかと思いますが、表示が変更されず・・・ dataを呼び出すことができません。 四苦八苦して「上書き保存」ボタンを押すことで表示が更新されて呼び出すことが出来ることが 確認できました。 これはexcelファイルの破損でしょうか? もしくは、excelファイルの設定の問題でしょうか? 誰か教えてください

  • セルに関数を入力せず求めた値を反映する

    excel2010 windows7 です。 セルA1に数式や関数を直接入力することなく シート名:データ の B1  に表示されている値を反映させる方法はないでしょうか? マクロは使わず。 お客様情報を入力するにあたり、エンドユーザーと契約者が同じ場合はそれぞれ入力しないといけないのですが、同じ場合はチェックボックスを使って同じ値が自動で入るようにしたいのですが、セルに直接数式を入れるとエンドユーザーと契約者が違う場合は数式の上に上書きになり、変更が出てエンドユーザーが契約者となった場合にチェックボックスを使っても式が消えていて使えなくなるので困っています。

専門家に質問してみよう