## Application.ExecuteScriptCode

### Introduced

v5.0

### Description

Executes a string of script code.
Use ExecuteScriptCode when you need to generate and execute a fragment of code written in a different scripting language (for example, to run some VBScript code from JScript).
Unlike Application.ExecuteScript, which reads script code from a file, ExecuteScriptCode takes a string of script code as an argument.

### C# Syntax

    Object Application.ExecuteScriptCode( String in_ScriptText, String in_LanguageProgID, String in_ProcName, Object& io_Params );

### Scripting Syntax

    oVariant = Application.ExecuteScriptCode( Code, Language, [ProcName], [Params] );

### Return Value

A Variant containing the return value of the subroutine. The return value is always empty if no subroutine argument is specified.

### Parameters

Parameter | Type | Description
--- | --- | ---
Code | String | A string that contains valid script code.
Language | String | Specifies the scripting language of the code (for example, "VBScript", "JScript", or "Python").
ProcName | String | Name of a procedure (a function or subroutine) to execute. When you execute a procedure, any global code (code that is outside of a procedure) is also executed. Tip: In VBScript, you can execute a subroutine ("sub") or a function ("function"). In JScript, procedures are declared with the "function" keyword; in Python, with "def", and in PerlScript, with "sub".
Params | Array of Variants | Arguments to pass to the procedure.

### Examples

#### 1. JScript Example

    //JScript example that shows how to mix scripting languages

    vbscriptFragment = "LogMessage \"Hello from VBScript\"" ;

    pythonScriptFragment = "Application.LogMessage( \"Hello from Python\" )" ;

    jscriptFragment = "LogMessage(\"Hello from JScript\")" ;

    Application.ExecuteScriptCode( vbscriptFragment, "VBScript" ) ;

    Application.ExecuteScriptCode( pythonScriptFragment, "Python" ) ;

    // Eval is a built-in JScript function that does the same thing

    // as Application.ExecuteScriptCode, but only for JScript code

    eval( jscriptFragment ) ;

    // Errors in the executed script are logged and returned

    // to the caller, so you can catch and handle exceptions

    try

    {

    	Application.ExecuteScriptCode( "Bad Script Code", "VBScript" ) ;

    }

    catch( e )

    {

    	LogMessage( "Script code failed: " + e.description ) ;

    }

    //Expected output:

    //INFO : Hello from VBScript

    //INFO : Hello from Python

    //INFO : Hello from JScript

    //ERROR : Expected end of statement - [line 1]

    //INFO : Script code failed: Expected end of statement [Line 1 in Script Text]

#### 2. VBScript Example

    'VBScript example that shows how to use mix scripting languages

    vbscriptFragment = "LogMessage ""Hello from VBScript"" "

    pythonScriptFragment = "Application.LogMessage( ""Hello from Python"" )"

    jscriptFragment = "LogMessage(""Hello from JScript"")"

    ' Execute is a built-in VBScript function that does the same

    ' thing as Application.ExecuteScriptCode, but only for VBScript code

    Execute( vbscriptFragment)

    Application.ExecuteScriptCode jscriptFragment , "JScript"

    'This line fails if Python is not installed

    Application.ExecuteScriptCode pythonScriptFragment, "Python"

    ' Errors in the executed script are logged and returned

    ' to the caller, so you can catch and handle exceptions

    on error resume next

    Application.ExecuteScriptCode "Bad Script Code", "VBScript"

    if err <> 0 then

    	LogMessage "Script code failed: " & err.description

    end if

    'Expected output:

    'INFO : Hello from VBScript

    'INFO : Hello from Python

    'INFO : Hello from JScript

    'ERROR : Expected end of statement - [line 1]

    'INFO : Script code failed: Expected end of statement [Line 1 in Script Text]

#### 3. JScript Example

    // JScript example that shows how to call a simple VBScript function from JScript,

    // and how to pass in arguments and get the return value

    var strVBRoutine = "function VBRound( in_var )\n" +

    			"VBRound = Round( in_var )\n" +

    			"end function" ;

    var aArgs = new Array ;

    aArgs[0] = 1.056879 ;

    LogMessage( Application.ExecuteScriptCode( strVBRoutine, "VBScript", "VBRound", aArgs) ) ;

    aArgs[0] = 99.9999 ;

    LogMessage( Application.ExecuteScriptCode( strVBRoutine, "VBScript", "VBRound", aArgs) ) ;

    // Expected results;

    //INFO : 1

    //INFO : 100

### See Also

Command Application.ExecuteScript