アプリ版:「スタンプのみでお礼する」機能のリリースについて

数式を残したまま、別のセルに答えを表示する方法。例えばセルAに
5.20*5.00-1.2*2.0と入力し、セルBに答えを表示する方法を教えていただけないでしょうか。宜しくお願いします。

A 回答 (4件)

この質問はときどき出現します。

ワークシート関数ではできませんが、ユーザ定義関数を作成すれば可能です。

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。

Private Function Eva(trg As String) As Double
  Eva = Evaluate(trg)
End Function

ワークシート画面に戻って
 =Eva(A1)
のようにユーザー定義関数を入力すると、質問の式では23.6が結果として得られます。
    • good
    • 8
この回答へのお礼

回答ありがとうございました。初心者なものでマクロとはどういうものかわらず、また回答いただいた通りできるか不安でしたが、出来るようになりました。大変助かりました。

お礼日時:2008/01/28 18:50

質問の意図を次の2CASEと考え回答します。


CASE-1 セルA1に5.20*5.00-1.2*2.0と表示し、セルB1に計算結果を表示したい場合。
セルB1に[=5.20*5.00-1.2*2.0]と入力
CASE-2 5.20*5.00-1.2*2.0の計算式の一部又は全部の値を変化させ、その計算結果をみてみたい場合。
セルA1に[5.20]、セルB1に[5.00]、セルC1に[1.2]、セルD1に[2.0]、セルF1に[=A1*B1-C1*D1]と入力し、セルA1~セルD1の値を適宜変更する。
また、その計算経緯をみたい場合は、セルA1~セルF1をコピーし、別の場所に貼り付け、セルA1~セルD1の値に対応する部分の値を変更する。
また、セルF1に計算式も表示したかったら、セルF1に[=A1&"*"&B1&"-"&C1&"*"&D1&"="&A1*B1-C1*D1]と入力する。
はたまた、5.20の様に小数点以下の0を表示したい場合は、
[=TEXT(A1."0.00")&"*"&TEXT(B1,"0.00")&"-"&TEXT(C1,"0.0")&"*"&TEXT(D1,"0.0")&"="&TEXT(A1*B1-C1*D1,0.00)]と入力する。
    • good
    • 1

時どきこのタイプの質問が出るが、これは初心者には、式内容が四則演算なので、簡単に思えるだろうが、普通のエクセルの関数式の計算のほかにこれ(Evaluate)を取り入れようとすると、難しいし、必要性をMSでエクセル技術者は認めなかったのだと思う。

そういうのができる表計算ソフトもMSがその気になればできることだが。式を作れば、作り直せば、よいじゃないかということ。
またこういう式を計算させるアルゴリズムは情報学科で学習しないと難しい。
ーー
マクロで苦肉の策で
標準モジュールに下記を張り付け実行する。
Sub test02()
s = "=" & Range("A1")
' MsgBox s
Cells(3, "C").Formula = s
End Sub
ーー
実例では
A1に A10*B1
A10に13
B1に2とあるの例では、C3に26となりました。
また
A1に 5.20*5.00-1.2*2.0 と入れて実行すると23.60になりました。
ただ即時反応ではないので式=データを変えた都度実行しなおしが必要。
    • good
    • 0

まだ締め切っていませんので、おせっかいながら


EVALUATEで

文字列を式に変換する方法 (単一セル)
http://www.nurs.or.jp/~ppoy/access/excel/xlET020 …
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A