• ベストアンサー

excelでこんなことができる関数があったと思うのですが

セルに「=」を除いて数式を打ちます。 例えば「2*3」と打つとします。 これは文字データと認識されます。 関数を使ってこれを別のセルに、答えの「6」と導き出す関数を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gutugutu
  • ベストアンサー率14% (184/1234)
回答No.8

今やってみましたらちゃんとDLできましたよ。 ただDLするだけと書きましたが、DLしたあと アドインの設定をしないといけないようです。 再度トライされてみてはどうですか?

arigecchu
質問者

お礼

最高です。 理想がそのまま実現しました。 本当にありがとうございました。

その他の回答 (7)

  • gutugutu
  • ベストアンサー率14% (184/1234)
回答No.7

過去ログ参照 NO.3の方の回答が良いかと思います。 マクロをくまなくてもDLするだけです。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1076973
arigecchu
質問者

お礼

とても良さそうに思えましたが、残念ながらアクセスできませんでした。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 #5 さんとかぶってしまいますので内容は割愛しますが、 このExcel Ver4 マクロ関数を使った式は、絶対に他のシートやブックにコピーしてはいけません。場合によって、Excelアプリケーションが、エラーを出して終了してしまいます。シート間で、コピーができる方法としては、 「=EVALUATE(!A1)」という書き方がありますが、システムが不安定な状態になるので、私は、お勧めしません。 なお、Excel 2003 ですと、セキュリティでマクロの使用が検出されるかと思います。 VBAのユーザー定義関数で同じように作りますと、以下のようになります。関数名は任意です。 '標準モジュールに以下のコードを入れます。 Function MOJI2SHIKI(セル As Variant) As Variant Dim myValue As Variant Dim ret As Variant  myValue = セル  ret = Application.Evaluate(myValue)  If IsError(ret) Then   MOJI2SHIKI = セル  Else   MOJI2SHIKI = ret  End If End Function ワークシートには、このように入れます。 =MOJI2SHIKI(A1) それから、Excel Ver4 マクロ関数が、本当に、VBAに置き換わるのなら問題がないのですが、置き換わっていない部分があり、今後、どうなるのかはわかりませんが、今のところ、Excel2003 までは、使用できます。 .

arigecchu
質問者

お礼

マクロで組むしかなさそうですね。 ありがとうございました。

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.5

こんにちは~ 4.0マクロ関数のことでしょうか? A1セルに 「2*3」、B1セルに計算結果だとします。 B1セルが選択された状態で メニューの挿入~名前~定義( または Ctrl+F3キー ) いちばん上の「名前」欄に任意の名前、ここでは仮に keisan と入れます。 いちばん下の参照範囲に =EVALUATE(A1)+NOW()*0 と入れます。 B1セルに =keisan と入れてください。6と出るはずです。 A2、A3…にも文字列の式を入れる場合は、 B1を下にフィルコピーすればOK。 4.0マクロ関数はいまでは互換性のためだけに残っているものです。 次期バージョンのエクセルで使えるかどうかの保証はありません。 これ以外では VBAでユーザー定義関数をつくるしかないと思います。

arigecchu
質問者

お礼

ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

多分INDIRECT関数の利用例をどこかでみて、記憶にうろ覚えで残ったのかも。 (例) A1に3、A2に2 とあるとする。 B1セルに(当然文字列で)A1:A2(半角)とあるとする。 たとえばB3に =SUM(INDIRECT(B1)) と入れると、合計が計算され 5と出ます。 しかしセル番地を参照するだけで、SUMそのものは、(そのままの!)関数に置き換えてくれるものはない。 VBAのEVALUATE(文字列を式として、評価=計算)しかない。

arigecchu
質問者

お礼

仰るとおり、indirectでした。 出来ませんでしたがすっきりしました。 やはりVBA使わないとだめみたいですね。 VBAはどうも苦手なので… ありがとうございました。

  • otoutann
  • ベストアンサー率26% (248/933)
回答No.3

A*Bのかけ算だけなら、2*3のセルがA1として、 =LEFT(A1,FIND("*",A1)-1) * RIGHT(A1,LEN(A1)-FIND("*",A1)) で計算できます。四則計算だけなら場合分けしてなんとかなりますが、 何の目的でそういう関数が必要か分かれば、他の手もあると思います。

arigecchu
質問者

お礼

関数をleftやfind使ってやるわけですね。 汎用性はないかもしれませんが、計算が一つの四則演算では大丈夫みたいですね。 ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

通常の関数では、なかったと思います。 VBAでは、 Evaluate関数で、そうした数式の計算をさせることができます。 なので、ユーザー定義関数を作成することになろうかと思います。

arigecchu
質問者

お礼

ありがとうございます。 VBAで作るしかないのでしょう? あったと思ったのですが。

  • chiyuko
  • ベストアンサー率27% (35/127)
回答No.1

おそらくMMULTのことだと思います。 お試しあれ!

arigecchu
質問者

補足

質問が下手で申し訳ないです。 あるセルに計算式を入力し、 そのセルから答えを導く関数が知りたいです。 例) セル「A1」 「3+5」から セル「A2」 に 「8」と導くような関数です

関連するQ&A