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 original- Public 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 original- VariableEnBase = "(<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