Я обычно использую VB.Net для программирования, но меня делегировали в проект VBA, в котором было бы полезно использовать управление сценариями для запуска сценария.Вот пример кода, но есть ошибки в строке кода .Run.Я могу сделать это в VB.Net легко, но не могу заставить его работать в vba.
ERROR = Неверное количество аргументов или недопустимый присвоитель свойства
Option Explicit
Dim sc As New ScriptControl
Sub RunFunctions()
MsgBox (Eval("2 * PI"))
End Sub
Function Eval(expr As String) As Object
Dim code As String
code = "Dim PI" & vbCrLf & _
"PI = 3.1416" & vbCrLf & _
" " & vbCrLf & _
"Function Result" & vbCrLf & _
" Result = " & expr & vbCrLf & _
"End Function"
sc.Language = "VBScript"
sc.AllowUI = True
sc.AddCode (code)
Dim myparams() as variant
Eval = sc.Run("Result", myparams)
End Function
Использование функции .Evalиз скрипта управляющий объект работает нормально в vba, но не запускает скрипты.Вот пример того, если кто-то хочет знать ...
Sub SimpleTask()
Dim expr As String
sc.Language = "VBScript"
expr = "2 + 2 * 50"
MsgBox sc.Eval(expr)
End Sub