まりふのひと

VBA/動的配列が作られているか否かを判定する

動的配列を引数として渡している。
戻ってきたとき、配列が作られているか否かの判断の仕方が解らず、ググってググったが、下記で判定できることを確認した。

  1. 初期値として空の配列を作る。(“varArray = Array()”
  2. このままで“UBound(varArray)”すると、-1 が返る。


 コード

Sub test()
Const str1 As String = "あいうえお"
Const str2 As String = "かきくけこ,さしすせそ"
Dim varArray As Variant
Dim i As Long

    varArray = Array()
    i = UBound(varArray)
Debug.Print "No.1", i
    varArray = Split(str1, ",")
    i = UBound(varArray)
Debug.Print "No.2", i
    varArray = Split(str2, ",")
    i = UBound(varArray)
Debug.Print "No.3", i

End Sub


 結果

No.1    -1 
No.2     0 
No.3     1 

追伸(H25.06.10)

  • “varArray = Array("")”とすると、UBound は 0 となる。
  • “varArray = split("",",")”とすると、UBound は -1 となる。