次の 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);
}
}