VB 配列の初期化
VBで配列の初期化をしようと以下のようにしたところ
Public Sub Main() Dim index As Integer Dim dSample() As Double dSample = Array(1.1, 1.2, 1.3) 'UBoundが参照することで「型が一致しません。」というコンパイルエラー For index = 0 To UBound(dSample) MsgBox (dSample(index)) Next End Sub
実行時エラー '13': 型が一致しません。
となった。 わからなくって、検索しててやっと以下のサイトに到着。
どうも、型指定がVariantであればエラーにならないらしい(なんで?)。
Public Sub Main() Dim index As Integer 'VariantだとArrayで初期化できる Dim sample() As Variant sample = Array(1.1, 1.2, 1.3) For index = 0 To UBound(sample) MsgBox (sample(index)) Next End Sub
見つけたサイトに書いてあるように、配列をStringで型指定していて Splitで設定していたときがあったので てっきり型指定しても問題ないもんだと思い込んでいたが違うらしい。
うーん、それなら型指定全部いらなくない?