8月14日配信のWindows Updateによって引き起こされる、VB6のArray()関数の不具合について
Windows Update後に、VB6で開発したプログラムにて「エラー5:プロシージャの呼び出し、または引数が不正です」のエラーが発生するとの報告がありました。
VB6のArray()関数の挙動が、Windows Updateによって変わってしまったことが原因のようです。
以下のプログラムにて、17行目で上記エラーが発生します。
01: Option Explicit
02: 
03: Sub Main()
04: 
05:     Dim a As Variant
06:     a = GetArray()
07: 
08:     MsgBox CStr(UBound(a))
09: 
10: End Sub
11: 
12: Private Function GetArray() As Variant
13: 
14:     Dim a As Variant
15:     a = Array()
16: 
17:     GetArray = a
18: 
19: End Function
定義済みの変数に空っぽの配列を定義し、それをユーザー定義関数の戻り値にセットするとエラーとなってしまうようです。
今まで、私の知る中で、Windows UpdateによってVB6の標準関数の挙動が変化してしまったのは初ではないでしょうか。
VB6だけではなく、Excel VBAでも同様の現象が発生することを確認しました。
ただし、WSHのVBSではエラーが発生しません。
対応策としては、空っぽの配列の変数に代入する方法を、以下のように変更します。
15:     a = Split("/", "")
Array()で空っぽの配列を代入するかわりに、Split()関数にて空配列が代入されるようにします。

