Text.SetAppPrivate メソッド

Item("AppPrivate") プロパティの値 (GUI での「いろいろ」) を設定します。

書式
obj_var.SetAppPrivate ( [text1 [, text2 [, text3 [, ...]]]] )

引数
obj_var
Text オブジェクト。

text1, text2, text3, ... (string)
Item("AppPrivate") プロパティの値を要素ごとに分けたもの。引数の個数は 0 個以上の任意の数。

戻り値
なし

Item("AppPrivate") プロパティの値は、このアプリケーションの独自仕様であるため、積極的な使用は勧めません。

備考
このメソッドは GetAppPrivate メソッドの逆操作ですが、引数は SAFEARRAY ではなく、要素を列挙した形になっています。

このメソッドに渡す引数の数はスクリプトの実行時に決めなければなりませんが、以下の例に示すようなテクニックで解決できます。

例 (JScript)
var t = Application.ActiveDocument.Text;
var a = t.GetAppPrivate();
a = a.toArray();
vararg_call(t, "SetAppPrivate", a);
// vararg_call 関数
// 可変長引数のメソッドを実行する.
// - obj はメソッドを持つオブジェクト
// - meth_name は文字列でのメソッド名
// - args は JScript 配列
function vararg_call(obj, meth_name, args)
{
    var str = "obj." + meth_name;
    var pre = "(";
    var i;
    for (i in args) {
        str += pre + "args[" + i + "]";
        pre = ",";
    }
    str += ");";
    return eval(str);
}

例 (VBScript)
Dim t, a
Set t = Application.ActiveDocument.Text
a = t.GetAppPrivate
vararg_call t, "SetAppPrivate", a
' vararg_call 関数
' 可変長引数のメソッドを実行する.
' - obj はメソッドを持つオブジェクト
' - meth_name は文字列でのメソッド名
' - args は配列
Function vararg_call(obj, meth_name, args)
    Dim str, pre, i
    str = "vararg_call = obj." & meth_name
    pre = "("
    For i = LBound(args) To UBound(args)
        str = str & pre & "args(" & i & ")"
        pre = ","
    Next
    str = str & ")"
    Execute str
End Function