Hola, no se si mi respuesta te va a llegar a tiempo, yo tuve necesidad de algo similiar y entonces lo que hice fue lo siguiente.
Código vb:
Ver originalPublic Function Evaluar(Expresion As String) As String
' Necesita Referencia Microsoft Script Control 1.0
Dim Scr As ScriptControl
Set Scr = New ScriptControl
Scr.Language = "VBScript"
Evaluar = Scr.Eval(Expresion)
Set Scr = Nothing
End Function
Esto sólo por si mismo, evidentemente no sirve para tus propositos ya que esto por ejemplo lo que hace es Text1 = Evaluar("15.5*2/7") y como es obvio se puede hacer de otras maneras.
Lo que yo haría en tu caso es por ejemplo algo asi:
Código vb:
Ver originalVariableEnBase = "(<Fx> * 2 + <Fy> * 2) * (1/2)"
Formula = Replace(VariableEnBase, "<Fx>", Caja1.Text)
Formula = Replace(Formula, "<Fy>", Caja2.Text)
Caja3 = Evaluar(Formula)
Suponiendo que tienes 1.5 en Caja1 y 3.9 en Caja2 en realidad estas consiguiendo ...
Caja3 = Evaluar("(1.5 * 2 + 3.9 * 2) * (1/2)") y esto devuelve 5.4
No se si es un poco chapuza pero funciona, en mi caso lo que hago es mas complejo ya que creo un Array de Valores y en lugar de nombres utilizo lo que son Memorias o sea algo asi ...
VariableEnBase = "(<1> * 2 + <2> * 2) * (1/2)"
De este modo puedo hacer un bucle y cambiar todas las variables que tenga la formula, ...
Si Formula contiene <1> Hago replace de <1>, si contiene <2> replace de <2>, ...
En fin opciones de desarrollo una vez tienes la idea son muchas.
Saludos