次のような関数を記述できるように、vbスクリプトで関数へのオプションの引数を作成する方法はありますか?.
myFunc("happy")
myFunc("happy", 1, 2, 3)
myFunc("happy", 1)
etc.
オプションのキーワード(VB6など)はvbscriptでは許可されていません
多分これは役立ちます: http://www.4guysfromrolla.com/webtech/071801-1.shtml
オーバーロード はどうですか?
呼び出す前に、いつでも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
これには、クラスの作成方法に関する知識が必要ですが、おそらく配列を使用するための次善の解決策です。
幸運を。
明らかに、これは環境と、同じファイルで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>