- - PR -
Excel VBAでコンパイルエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-07-20 10:56
Excel 2003のVBAです。
以下のようなコードで、標準モジュールの「 ss = c1(i).p_t1(j).s」の行で コンパイルエラーになります。 コンパイルエラーの前の行のubound関数は望んだ値を返します。 また、ウォッチウインドウでは、c1(i).p_t1(j).sの中身を参照できます。 どこが悪いのでしょうか? ----ここから 標準モジュール option explicit Public Type udtType1 s As String End Type Sub test() Dim i As Long Dim j As Long Dim c1(10) As Class1 Dim ss As String For i = 0 To UBound(c1) Set c1(i) = New Class1 For j = 0 To UBound(c1(i).p_t1) ss = c1(i).p_t1(j).s Next j Next i End Sub ----ここまで 標準モジュール ----ここから クラスモジュール(Class1) Option Explicit Private t1() As udtType1 Public Property Get p_t1() As udtType1() p_t1 = t1 End Property Private Sub Class_Initialize() Dim i As Long ReDim t1(10) For i = 0 To UBound(t1) t1(i).s = "a" Next i End Sub ----ここまで クラスモジュール(Class1) |
|
投稿日時: 2007-07-20 13:01
戻り値が配列だとコンパイル時にバインドができないため、みたいですね。
以下のように修正したら通りました。 標準モジュール For j = 0 To c1(i).getCount() クラスモジュール Public Property Get p_t1(i As Long) As udtType1 p_t1 = t1(i) End Property Public Function getCount() As Long getCount = UBound(t1) End Function |
|
投稿日時: 2007-08-02 20:41
mioさま、返信ありがとうございました。
仰せの方法で回避します。 遅くなりまして申し訳ありません。 |
1