web-dev-qa-db-ja.com

vbスクリプトの関数にオプションの引数を作成する方法はありますか?

次のような関数を記述できるように、vbスクリプトで関数へのオプションの引数を作成する方法はありますか?.

myFunc("happy")
myFunc("happy", 1, 2, 3)
myFunc("happy", 1)
etc.
23
Rob Segal

オプションのキーワード(VB6など)はvbscriptでは許可されていません

多分これは役立ちます: http://www.4guysfromrolla.com/webtech/071801-1.shtml

14

オーバーロード はどうですか?

3
Josh Stodola

呼び出す前に、いつでもclassにしてPublic Property Letを使用してSub/Functionに入力できます。

  Set oSubName = New cSubName

    'fill your parameters, you can always add more later
    oClass.OptionalParameter1 = true
    oClass.OptionalParameter2 = false

    'execute sub
    oSubName.Execute

  Set oSubName = Nothing

これには、クラスの作成方法に関する知識が必要ですが、おそらく配列を使用するための次善の解決策です。

幸運を。

2
Control Freak

明らかに、これは環境と、同じファイルでJScriptとVBScriptの両方の使用をサポートしているかどうかによって異なりますが、Windows Script Host(* .wsfファイル)を使用してある程度の成功を収めています。

<?xml version="1.0" standalone="yes" ?>
<package xmlns="Windows Scripting Host">
    <job id="param">
    <?job debug="true"?>

        <script language="JavaScript">
            <![CDATA[
                function MakeString(args) {
                    var s = [];
                    for(var i = 0, length = arguments.length; i < length; i++)
                        s.Push(arguments[i]);
                    return s.join('');
                }
            ]]>
        </script>
        <script language="vbscript">
            <![CDATA[
                WScript.Echo MakeString("hello", " ", "world")
                WScript.Echo MakeString()
                WScript.Echo MakeString(1,2,3,4)
            ]]>
        </script>
    </job>
</package>

jScriptで関数を定義し、VBScriptで参照できます。より良い方法は、JScript関数を外部ファイルとして含めることです。

    <script language="JavaScript" src="makestring.js"/>
    <script language="vbscript">
        <![CDATA[
            WScript.Echo MakeString("hello", " ", "world")
            WScript.Echo MakeString()
            WScript.Echo MakeString(1,2,3,4)
        ]]>
    </script>
1
user69820