クラス 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
オブジェクトのコピーを作成します。
パラメーター
引数 | 型 | 説明 |
---|---|---|
|
| コピーを受け取るために、初期化されていない |
戻り値
なし。
注意
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