• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Evaluate()に数式を代入した変数を渡すには)

VB.NETのEvaluate()関数で変数に数式を代入する方法

このQ&Aのポイント
  • VB.NETでEvaluate()関数を使って数式をリテラルで渡す場合は正しく評価されますが、変数に数式を代入して渡すと評価されません。
  • 数式の構造が実行中に決まる場合、変数に数式を代入して引数として渡す方法が不明です。
  • WindowsXPおよびVS2010環境での評価結果の取得方法も教えてください。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

Evaluateに文字列で「x」と渡しても理解できません。次のように変えてみて下さい > term1 = "x = 1" > MsgBox(xlApp.Evaluate(term1)) '期待 True  実際 -2146826259 結果 NG ↓ term1 = x & " = 1" MsgBox(xlApp.Evaluate(term1)) ちなみに、 > x = 1 > MsgBox(xlApp.Evaluate(x = 1)) '期待 True  実際 True  結果 OK ↑これは、↓これと同じことをやっているに過ぎず、計算式を渡している訳ではありません。 MsgBox(xlApp.Evaluate(TRUE))  当然、TRUEが返ります。

yam2012
質問者

お礼

term1 = x & " = 1" で できました。 また、 MsgBox(xlApp.Evaluate(x = 1)) は MsgBox(xlApp.Evaluate(x & "= 1")) としなければならないことも分かりました。 正しく動作しなかった方だけでなく、正しく動作していたと思われた方も 間違っていたわけですね。 質問してよかったです。ありがとうございました。

関連するQ&A