- ベストアンサー
エクセルで一つのセルに式入力し、隣のセルに結果を
エクセルで一つのセルに式入力し、隣のセルに結果を返す入力方法で一番簡単な方法があれば教えてください。たとえば一つのセルに3.1×2.5または3.1*2.5入力し答えを返す方法です。できれば(6.80+5.90)×2.60と入力し隣のセルに答えを返してくれるよう加減乗除できるようにしたいのです。うまく言えないのですがよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Excel4マクロを使う方法もありますが、操作性が良くないので、 VBAでユーザー定義関数を作るのが簡単そうですが・・・。 標準モジュールに Function eval(myvalue As Variant) As Variant eval = Application.Evaluate(CStr(myvalue)) End Function として、 セルA1に (6.80+5.90)*2.60 と指定してください。 33.02 という結果を返します。 (6.80+5.90)×2.60 この数式でも同じ結果を返します。 試してみて下さい セルB1には、 =eval(a1) と指定してください
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
既に言っておられますが (1)Excel4.0利用法 (2)Evaluate利用 があります。少し深く知りたければ、上記の語句でWEB照会のこと。 (3)普通のVBA法で(Formula利用法) 問題のシートがSheet1とし、式を入れるのをB列限定とし、C列に答えを出します。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 2 Then Exit Sub 'B列限定 x = "=" & Target 'MsgBox x Target.Offset(0, 1).Formula = x End Sub ーー 例データ (1+2)*4 12 2*3+4*3 18 2/4+3*3 9.5 ーーー こういう質問はキワ物で、できるだけエクセルの数式を正面から使うべきです。初心者はこういう発想に行きがちです(時どきこの型の質問が載る)が。 もともと括弧と加減乗除に限っても、表面から取り組むと、逆ポーランド記法とかコンパイラの勉強させられて、大學情報科初年級の難しい課題です。エクセルの問題ではありません。
- lark_0925
- ベストアンサー率63% (37/58)
Excel4マクロを使う方法もありますが、操作性が良くないので、 VBAでユーザー定義関数を作るのが簡単そうですが・・・。 標準モジュールに Function eval(myvalue As Variant) As Variant eval = Application.Evaluate(CStr(myvalue)) End Function として、 セルA1に (6.80+5.90)*2.60 と指定してください。 セルB1には、 =eval(a1) と指定してください 33.02 という結果を返します。 (6.80+5.90)×2.60 この数式でも同じ結果を返します。 試してみて下さい
お礼
お礼遅くなりました。ありがとうございました。
お礼
お礼遅くなりました。ありがとうございました。