Main Content

クラス MWSparse

MWSparse クラスは、コンパイルされたクラス メソッドに対して 2 次元スパース数値配列の受け渡しを行います。このクラスには以下の 7 つのプロパティ/メソッドが含まれています。

Property NumRows As Long

配列の行の次元を格納します。NumRows の値は、非負でなければなりません。値が 0 の場合、行インデックスは配列 RowIndex 内の値の最大値から取得されます。

Property NumColumns As Long

配列の列の次元を格納します。NumColumns の値は、非負でなければなりません。値が 0 の場合、行インデックスは配列 ColumnIndex 内の値の最大値から取得されます。

Property RowIndex As Variant

配列の非ゼロ要素からなる行インデックスの配列を格納します。このプロパティの値には、基となる配列が Long 型の数値行列として解釈または型強制されなければならない (セル データは許可されない) という制限付きで、Variant への型強制が可能な任意の型およびオブジェクト型を使用できます。NumRows の値が非ゼロで、任意の行インデックスが NumRows より大きい場合、不適切なインデックス エラーが発生します。配列 RowIndex 内の要素数が Array プロパティの基となる配列の要素数と一致しない場合にもエラーになります。

Property ColumnIndex As Variant

配列の非ゼロ要素からなる列インデックスの配列を格納します。このプロパティの値には、基となる配列が Long 型の数値行列として解釈または型強制されなければならない (セル データは許可されない) という制限付きで、Variant への型強制が可能な任意の型およびオブジェクト型を使用できます。NumColumns の値が非ゼロで、任意の列インデックスが NumColumns より大きい場合、不適切なインデックス エラーが発生します。配列 ColumnIndex 内の要素数が Array プロパティの基となる配列の要素数と一致しない場合にもエラーになります。

Property Array As Variant

スパース配列の非ゼロの配列の値を格納します。このプロパティの値には、基となる配列が Double 型または Boolean 型の数値行列として解釈または型強制されなければならない (セル データは許可されない) という制限付きで、Variant への型強制が可能な任意の型およびオブジェクト型を使用できます。

Property MWFlags As MWFlags

MWFlags オブジェクトへの参照を格納します。このプロパティは特定のスパース配列に対して、配列形式フラグおよびデータ変換フラグの設定または取得を行います。各 MWSparse オブジェクトには固有の MWFlags プロパティがあります。このプロパティは、メソッドが呼び出されるオブジェクトに設定された任意のフラグの値をオーバーライドします。

Sub Clone(ppSparse As MWSparse)

MWSparse オブジェクトのコピーを作成します。

パラメーター

引数説明

ppSparse

MWSparse

コピーを受け取るために、初期化されていない MWSparse オブジェクトを参照します

戻り値

なし。

注意

Clone は新規 MWSparse オブジェクトを割り当て、オブジェクトの内容のディープ コピーを作成します。既存のオブジェクト参照の共有コピーではなく、別のオブジェクトが必要な場合はこの関数を呼び出します。

次の Visual Basic® サンプルは 5 行 5 列の三重対角スパース配列を作成します。

X = [ 2 -1  0   0   0
     -1  2 -1   0   0
      0 -1  2  -1   0
      0  0 -1   2  -1
      0  0  0  -1   2 ]

Sub foo()
    Dim x As MWSparse
    Dim rows(1 To 13) As Long
    Dim cols(1 To 13) As Long
    Dim vals(1 To 13) As Double
    Dim I As Long, K As Long

    On Error GoTo Handle_Error
    K = 1
    For I = 1 To 4
        rows(K) = I
        cols(K) = I + 1
        vals(K) = -1
        K = K + 1
        rows(K) = I
        cols(K) = I
        vals(K) = 2
        K = K + 1
        rows(K) = I + 1
        cols(K) = I
        vals(K) = -1
        K = K + 1
    Next
    rows(K) = 5
    cols(K) = 5
    vals(K) = 2
    Set x = New MWSparse
    x.NumRows = 5
    x.NumColumns = 5
    x.RowIndex = rows
    x.ColumnIndex = cols
    x.Array = vals
        .
        .
        .
    Exit Sub
Handle_Error:
    MsgBox (Err.Description)
End Sub