手持ちで64bit版がWindows Server 2008しかないため、他のバージョンでは確認できませんが、VBSの挙動の違い。
#そういえば、Windows Server 2008 x86の環境もないので未確認^^;
Vista x86版向けに作って使用していたスクリプトが動かないと思ったら...
呼び出し先関数で利用するグローバルな配列は、関数呼び出し前に宣言しないと使えません^^;
【ダメな例】
bRet = hogehoge()'ここで関数を呼び出す
Dim g_arTest()'←呼び出しより後に配列の宣言をするとダメ
Function hogehoge()
Redim Preserve g_arTest(10)'←ここで「エラー: 型が一致しません。」が発生
hogehoge = true
End Function
【動く例】
Dim g_arTest()'←呼び出しより先に配列を宣言bRet = hogehoge()'ここで関数を呼び出すFONT face=Arial>Function hogehoge()
Redim Preserve g_arTest(10)
hogehoge = true
End Function
とってもこれがバグ仕様だと思う理由。以下のコードはWindows Server 2008 x64版で動くのですよねぇorz
【動く例】配列じゃない変数はどこで宣言しても良いっぽい(きもちわるいけれど^^;)
(実行結果は当然「-1:ちゅきは一般優良市民」←ここが一番の要点!)
Option Explicit
szTest = "*ちゅきはウソちゅき"'←宣言前に使うのはどうか? というはないしょ^^;
Wscript.Echo hogehoge() & ":" & szTest
Dim szTest
Function hogehoge()
szTest="ちゅきは一般優良市民"
hogehoge = true
End Function
さて、改修どうしようかなぁ...(Let's say あんさっとぉ o...rz)