質問: セルの数式を計算させないで文字列として表示させたいのですが 例えばb1セルに=sum(a1:a5) と打つとその計算結果が表示されます。 そして僕は、その下のb2セルに、「=sum(a1:a5)」と、文字列として表示させたいのです。 どうしてかと言いますと、b1セルには「=sum(a1:a5)」と打ったんだよ ということを b2セルに表示させておきたいのです。 そうすればそれをプリントして、暇なときに見たりして ああ、このセルには「=sum(a1:a5)」と打ったんだな、とわかり、 いろんな関数を覚えれると思ったからです。 しかし、b2セルにb1セルをコピーしてしまうと、b2セルは=sum(a1:a5)となってしまい、 当たり前ですけど計算結果が表示されてしまい、 「=sum(a1:a5)」を文字列として表示できないのです。 何かうまい方法はないものでしょうか? vbaで出来そうな気はするのですが出来ませんでしょうか?
回答: ツール-オプションー表示ー数式 セルの書式を「文字列」に前もって設置して数式を入れる アポストロフィを先頭につける などありますが、ニーズに合わないなら vbeの標準モジュール画面に下記を貼り付ける (ユーザー関数) function fl(a) fl = a.formula end function そしてセルで =fl(a12) のように入れると =average(a1:a9) のように表示される。flは別の名前でもよい。 なお普通のエクセル関数では、関数式は、取得できません。関数はセルの「値を」取得・設定・加工するもので、関数式は「値」ではありません。 書式や数式やコメントは、エクセルでは「値」ではありません。