Buenas colegas.
De antemano mil gracias por su tiempo y por su ayuda
mi consulta es la siguiente, tengo un ejemplo que encontre en una web sobre como evaluar el resultado de una funcion, aqui la pego:
'Prueba 2 de ScriptControl
Dim sCodigo As String
Dim vValor As Variant
sCodigo = "Function Multiplica(a, b)" & vbCrLf & _
" Multiplica = a * b" & vbCrLf & _
"End Function"
'Añadimos el código, especificamos el lenguaje y ejecutamos
With ScriptControl1
.Language = "VBScript"
.AddCode sCodigo
'Usamos Run para obtener el resultado
'vValor = .Run("Multiplica", "2", "5")
'Usando Eval, nos permite que la expresión esté en
'una variable... además de hacerlo directamente,
'pero se usa de la misma forma que lo haríamos desde VB
vValor = .Eval("Multiplica(2,5)")
'Mostramos el valor devuelto
MsgBox "El valor devuelto es: " & vValor
End With
El asunto es que la funcion esta encapsulada dentro de una variable como ven:
sCodigo = "Function Multiplica(a, b)" & vbCrLf & _
" Multiplica = a * b" & vbCrLf & _
"End Function"
Pero como puedo evaluar el resultado de una funcion cualquiera que se encuentra en otro modulo como ser
Function Valor()
Valor=10
End Function
Pero sin declararla ni meterla dentro del procedimiento que la evalua ni con las "", no se si soy lo suficientemente claro , de todas maneras gracias por todo.
Man el ScriptControl1 es un OCX o que es ? y no pudes agregar en una variable una operacion de este modo :
Valor = "suma 5+10"
Por favor cuando postees codigo usa la el boton de codigo asi es mas facil leer la programacion ;)
Disculpa que no te pueda ayudar :(
Sancho.Mazorka :P
Hola!
Si, es una ocx, msscript.ocx y no, y no, no me sirve:
valor="suma +10+20"
Sino:
valor=suma(10,10) + 10+10
No se si me explico.
Pd.: Cual es el boton de codigo?, perdon..
Intente correr el código pero me da error :huh:
"Error '308' en tiempo de ejecución"
"A script engine for the spceified languaje can not be created"
y a tu pregunta, para poder usar funciones que esten en otros módulos declaralas como "Public", de esa manera las podrás usar...
En un módulo
Public Function Sumar(a as integer, b as integer) as Integer
sumar = a + b
end function
y desde cualquier parte de tu proyecto
dim z as integer
z = sumar(5,9)
Hola y gracias por tu respuesta, es que el problema lo tengo para que lo ejecute el scriptcontrol, como lo hago?, gracias.