Application.ExecuteScript

説明

スクリプトファイルを実行します。このルーチンを使用すると、単一のプラグインを複数の言語で記述できます。たとえば、VBScript スクリプトで、JScript で記述されているヘルパー関数を呼び出すことができます。また、COM C++ プラグインでスクリプトコードを実行する場合にも便利です。

さらに、スクリプトをカスタムコマンドとして登録することも可能です。この方法の利点の 1 つは、スクリプトを呼び出す場合にそのスクリプトのフルパスを知らなくてもよいということです。

エラーが生じた場合は、グローバル ErrorInfo に説明情報が格納されます。たとえば、解析エラーやスクリプトエラーが生じた場合は、問題の説明が ErrorInfo.Description プロパティに記録され、行番号は ErrorInfo.HelpContext プロパティに記録されます。この情報を確認する方法は、言語によって異なります。たとえば、C++の場合は'GetErrorInfo()'、VBScript の場合は 'err'、JScript の場合は 'Error object' を参照してください。

スクリプト 構文

oVariant = Application.ExecuteScript( FileName, [Language], [ProcName], [Params] );

戻り値

プロシージャの戻り値を含むVariant

パラメータ

パラメータ タイプ 詳細
FileName StringまたはExpression スクリプトファイルのフルパス
言語 StringまたはExpression 言語を使用してスクリプトを記述します。

デフォルト値:ファイル名の拡張子を基に決定

指定可能な値:

説明:

VBScript VBScript 言語(認識されるファイル拡張子は'.vbs'のみ)
JScript JScript言語(認識されるファイル拡張子は'.js'のみ)
Python Python Active Xスクリプト言語(認識されるファイル拡張子は'.py'および'.pys'のみ)
PythonScript Python Active Xスクリプト言語(認識されるファイル拡張子は'.py'および'.pys'のみ)
PerlScript Perl スクリプト言語(認識されるファイル拡張子は'.pl'および'.pls'のみ)
ProcName String 実行するサブルーチンの名前。スクリプト言語の性質によっては、グローバルコード(たとえば、サブルーチンに含まれないコード)も実行されます。

ヒント:サブルーチンは、VBScript では"sub"または"function"、JScript では"function"、PerlScript では"sub"、Python では"def"になります。
Params VariantArray サブルーチンに渡す引数

VBScript の例

Dim fso, wText, bInteractive, TestFile
TestFile="c:\temp\test.vbs"
Main()
'------------------------------------------------------------------------------
' NAME:         FillFile
'
' INPUT:
'
' DESCRIPTION:  Fill the test file
'------------------------------------------------------------------------------
sub FillFile (in_file)
        wText.WriteLine "Main()"
        wText.WriteLine ""
        wText.WriteLine "sub log_some_messages(an_int, a_string)"
        wText.WriteLine "logmessage ""the int : "" & an_int"
        wText.WriteLine "logmessage ""the string : "" & a_string"
        wText.WriteLine "end sub"
        wText.WriteLine ""
        wText.WriteLine "sub main()"
        wText.WriteLine "CreatePrim ""Sphere"", ""NurbsSurface"""
        wText.WriteLine "end sub"
        wText.Close
end sub
sub main()
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set wText = fso.CreateTextFile( TestFile, 1)
        FillFile TestFile
        ExecuteScript TestFile
        dim aParams
        aParams = Array(123456789, "toto")
        ExecuteScript TestFile,,"log_some_messages", aParams
end sub

関連項目

XSIApplication.ExecuteScriptCommand Application.ExecuteScriptCode