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()関数にて空配列が代入されるようにします。
0 件のコメント:
コメントを投稿
登録 コメントの投稿 [Atom]
<< ホーム