- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Evaluate()に数式を代入した変数を渡すには)
VB.NETのEvaluate()関数で変数に数式を代入する方法
このQ&Aのポイント
- VB.NETでEvaluate()関数を使って数式をリテラルで渡す場合は正しく評価されますが、変数に数式を代入して渡すと評価されません。
- 数式の構造が実行中に決まる場合、変数に数式を代入して引数として渡す方法が不明です。
- WindowsXPおよびVS2010環境での評価結果の取得方法も教えてください。
- みんなの回答 (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が返ります。
お礼
term1 = x & " = 1" で できました。 また、 MsgBox(xlApp.Evaluate(x = 1)) は MsgBox(xlApp.Evaluate(x & "= 1")) としなければならないことも分かりました。 正しく動作しなかった方だけでなく、正しく動作していたと思われた方も 間違っていたわけですね。 質問してよかったです。ありがとうございました。