- ベストアンサー
Excelのrsn関数が即時反映されない
シートの名前を取得するrsn関数を使っているのですが、シート名称を変更してもすぐに反映されません。 セルA1には =rsn() と入力されているのですが、 1 シートの名前を変更する 2 セルA1をダブルクリックしてセル内の編集状態にする 3 enterキーを押して編集を確定させる→ここでやっとA1の値が変更されます。 上書き保存して閉じ、再度開いても同様で、1~3の操作をしないとセルが変更されません。 計算方法は自動にしています。 rsn関数を使うシートをこれから100枚ほどつくるつもりなのですが、助けて下さいませ!><
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ブックを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける function rsn2() application.volatile rsn2 = application.caller.parent.name end function ファイルメニューから終了してエクセルに戻る 任意のセルに =rsn2() と記入,単純にシート名を変更して動作確認してみる。 #単に,今ご利用のrsn関数がよろしくないだけです。 といってもそれの手直しはご容赦。
その他の回答 (1)
- kagakusuki
- ベストアンサー率51% (2610/5101)
rsn関数とはおそらくマクロを使用する事で新たに作られたユーザー定義関数だと思われます。 その様なユーザー定義関数を使用せずとも、元々Excelに標準装備されている関数を組み合わせた =REPLACE(CELL("filename",A1),1,FIND("]",CELL("filename",A1),FIND(".xls",CELL("filename",A1))),) という関数でも、シート名を取得する事が出来るのですが、どうしてもrsn関数でなければならないのでしょうか? 尚、上記の関数は、一度も保存された事のない新規Bookでは動作せず、ファイルとして一旦保存されている事が必要です。(一度でも保存されてさえいれば、シート名を変更すると同時に、変更後のシート名が取得されます)
お礼
この方法は調べて知っていたのですが、長ったらしいのでrsnのほうがいいかなと思っていましたが浅はかでした! ちゃんと動作しております。ありがとうございます。
お礼
標準のrsnより使い勝手がいいですね。 こんなことができるとは、そしてそれをすぐに答えられるというのも驚きです。 ありがとうございました!