次の 0.7.5.7 fix6 で TextProcessor が TextEditor になるらしい……。
VBScript の場合
短くすませるなら、次の 1 行。
WScript.Echo "VBScript 評価結果: " & Eval(Ambient.ActiveDocument.TextProcessor.Selection.Text)
ただし、エラーになった場合や、結果がオブジェクトだった場合は、ちょっと見づらい。長くするとこんな感じ。
On Error Resume Next sScript = Ambient.ActiveDocument.TextProcessor.Selection.Text vResult = Eval(sScript) If Err.Number = 0 Then WScript.Echo "VBScript 評価結果: " & vResult Else Err.Clear Set vResult = Eval(sScript) If Err.Number = 0 Then WScript.Echo "VBScript 評価結果: (" & TypeName(vResult) & ")" Else WScript.Echo "VBScript 評価エラー: " & Err.Description & "(" & Err.Number & ")" End If End If
JScript の場合
短くすませるなら
WScript.Echo(eval(Ambient.ActiveDocument.TextProcessor.Selection.Text));
だが、マジメにやってもあんま長くならない。さすが ECMAScript、例外処理を入れてもなんともないぜ。
try { result = eval(Ambient.ActiveDocument.TextProcessor.Selection.Text); WScript.Echo("JScript 評価結果: " + result); } catch (e) { if (e instanceof Error) { WScript.Echo("JScript 評価例外: " + e.description + "(" + (e.number & 0xffff) + ")"); } else { WScript.Echo("JScript 評価例外: " + e); } }