文字列を数式にするには?

解決


駆け出しぷろぐらま  2002-09-05 02:07:54  No: 76092  IP: [192.*.*.*]

テキストボックスに、以下のような数式を入れたときに
その数式で実際に計算して、結果を返すようなプログラムを作りたいのですが
「文字列→数式」になるような関数ってないでしょうか?
(ちなみに変数部分の数値は別途、テキストボックスなどで入手します。)

変数0*3.14
変数1−変数2
273-変数3
(変数4+変数5)*2-変数6

編集 削除
Say  2002-09-05 08:32:00  No: 76093  IP: [192.*.*.*]

1年ほど前に似たような質問に回答した記憶が…。
過去ログ去年の10月「スクリプト」で
検索してみてください。

編集 削除
VBレスキュ−(花ちゃん)  URL  2002-09-05 10:04:19  No: 76094  IP: [192.*.*.*]

文字列式を計算するなら

Private Sub Command1_Click()
    Dim Sc As Object
    Set Sc = CreateObject("ScriptControl")
    Sc.Language = "VBScript"
    Text1.Text = Sc.Eval("((10+20)*2)\2+30+20-50")  '=30
    Set Sc = Nothing
End Sub


プロジェクト→コンポーネント→Microsoft Script Control 1.0 にチェックを
入れて ScriptControl をフォームに貼り付けて下さい。
見つからなければ VB6.0 のCDからインストールして下さい。

編集 削除
駆け出しぷろぐらま  2002-09-10 10:38:29  No: 76095  IP: [192.*.*.*]

回答ありがとうございました。
実際はもうちょい複雑なのですが、早速試してみます。

編集 削除
蜻蛉  URL  2002-09-10 18:14:29  No: 76096  IP: [192.*.*.*]

入力した文字列を直接計算したいのならそういうクラスがあります。

http://www.biwa.ne.jp/~y-koyama/soft/DCM.html

これです。改造すれば数式も出力できます。

編集 削除
駆け出しぷろぐらま  2002-09-22 22:26:45  No: 76097  IP: [192.*.*.*]

蜻蛉さんに教えていただいたクラスをヒントにして、
無事に解決できました。
有難うございました。

編集 削除