- ベストアンサー
計算式を別のセルで文字列として自動的に表示させたい
計算式を別のセルで文字列として自動的に表示させたいのですが、 例えば、A1セルで =2*3*2 と入力すると自動的に B1セルで 2*3*2 と表示される方法はありますか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
普通のエクセル関数では、セルの情報の中の「値」だけを対象にしており、セルの情報として、値とは別の、関数式を捉えることができません。セルの値しか捉えられません。 ーー そこでユーザー関数を定義します。たった1行です。 下記コードを標準モジュールにコピペ。 関数名fmlはなんでも良い。 Function fml(a) fml = a.Formula End Function シートのセルで、どこでも式を出したいセルに =fml(A3) のように入れます。 B2に=A1*4があるとき、=fml(B2) で=A1*4 と出ます。 アイデアは既回答と同じなのですが。 ーー ユーザー関数について、 上記「標準モジュール」の語など判らなければ、 http://www.excel.studio-kazu.jp/lib/e1iw/e1iw.html などを見てください。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
補足: (=イコール)の消し方は、 =MID(siki,2,256) または、 =SUBSTITUTE(siki,"=","",1) ということです。
お礼
お礼が遅くなり申し訳ありません。 #2さんのユーザー定義関数と、教えて頂いたMIDの式を応用し解決することが出来ました! ご丁寧にありがとうございました!!
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 こんな方法がありますね。 最初に、マウスをB1に合わせておいて、 挿入→名前→定義で、 仮に、SIKI とでもします。 参照範囲 =GET.CELL(6,!A1)&LEFT(NOW(),0) B1: =SIKI とすれば、A1 の中身が出てきます。 =2*3*2 と出てきます。 相対参照ですから、左隣に対して、数式を出します。 なお、セキュリティによっては、ブックを開けたときに、マクロ関数が含まれているというメッセージが出ることがあります。
- chie65536
- ベストアンサー率41% (2512/6032)
ワークシートのイベント処理に以下を追加。 Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Row = 1) And (Target.Column = 1) Then Worksheets("Sheet1").Range("B1").Value = "'" & Worksheets("Sheet1").Range("A1").Formula End If End Sub 式の「=」が邪魔ならMid$()で2文字目から切り出しましょう。
お礼
基本を#2さんの方法でMidを使い解決することが出来ました! ありがとうございました!
補足
ご回答ありがとうございます。 とりあえず、この方法で希望通り B1 に 2*3*2 と表示することが出来ました! ありがとうございます! 式の「=」を消す方法ですが、Mid$()はどのように使えば良いでしょうか? 補足:先にお伝えすべきでしたが、マクロは最近勉強を始めたばかりです。
お礼
お礼が遅くなり申し訳ありません。 教えて頂いたユーザー関数に、=を消したかったので#1さんのMIDと、#4さんの補足を応用し、 Function fml(a) fml = Mid(a.Formula, 2, 256) End Function で解決することが出来ました!! ありがとうございました!!