• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答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