VBAはExcelにての利用時、Rangeなど配列を利用したいケースが多い
しかしインスタンス変数に配列を利用しようとするとエラーが発生した。
その時の一時的対処のメモ
エラー内容
VBAにおいて以下のようなクラスモジュールを作成しようとする
SampleClass
Option Explicit
Public numbers() As Long
対応策
Variant型で変数宣言する
その後、Array型の値を代入すると配列として利用できる
SampleClass
Option Explicit
Public numbers As Variant
Private Sub Class_Initialize()
numbers = Array()
End Sub
実行例
SampleModule
Public Sub Test()
Dim number As Variant
Dim cls As SampleClass
Set cls = New SampleClass
cls.numbers = Array(1,2,3)
For Each number In cls.numbers
Debug.Print number
Next
End Sub
出力結果
1
2
3