2

配列をカスタムクラスに渡して保存し、そのオブジェクト内でさらに使用しようとしています。クラスオブジェクトの定義は次のとおりです。

' Class Name: MBRMCurves
Implements ICurves

Private m_lInterpDates() As Long

Public Property Get InterpDates() As Long()

    InterpDates = m_lInterpDates

End Property

Public Property Let InterpDates(lInterpDates() As Long)

    m_lInterpDates = lInterpDates

End Property

このコードを呼び出すモジュールは次のようになります。

Dim objResult     As New MBRMCurves

    'Store the forward prices
    Dim fx_fwd()      As Double

    'Store the interpolation dates
    Dim int_dates()   As Long

    'initially there are no people
    Dim NumberTenors  As Integer
    NumberTenors = 0

    Dim cell          As range

    ' Create ranges of Dates
    Dim range     As range
    Dim range_topcell As range

    ' TODO Pri1 Create the Curves Obj
    With Worksheets("test")

        ' Populate the dates of the FWD rates.
        Set range_topcell = .range("B5")
Debug.Print range_topcell.Value
        Set range = .range(range_topcell, range_topcell.End(xlDown))
Debug.Print range.Count

        ' Add more columns to the FWD array
        ReDim fx_fwd(0 To range.Count - 1, 0 To 3)
        ReDim int_dates(0 To range.Count - 1)

        ' Set the counter
        NumberTenors = 0

        ' Populate the dates of the FWD rates into the first column of the dates array.
        For Each cell In range
            NumberTenors = NumberTenors + 1
            int_dates(NumberTenors - 1) = cell.Value
        Next cell

        ' Add interpolation dates to Curves object
        objResult.InterpDates int_dates

上記のコードの最後の行で、コンパイルエラーが発生しています:プロパティの使用が無効です。

Let関数の構文は正しいと思いますが、微妙なニュアンスのある見落としがないかもしれません。

誰かが私が間違っていることを見ることができますか?WindowsXPでExcel2003とVBA6.5を使用しています。

任意の提案をいただければ幸いです。

ありがとう、

クリストス

4

1 に答える 1

2

プロパティはメソッド呼び出しではないため、配列と等しく設定する必要があります。

objResult.InterpDates = int_dates

渡した配列にまだ問題がある可能性がありますが、これは最初のステップです。

于 2012-12-10T14:26:53.440 に答える