動的配列を宣言して領域を確保したり、既存の動的配列のサイズを変更します。
ReDim [ Preserve ] arrayName ( bounds ) [ As type]
[ , arrayName ( bounds ) [ As type ] ] ...
Preserve
オプション。arrayName がすでに宣言されていれば、そのとき代入されている値が保存されます。Preserve を省略すると、LotusScript® によって配列内のすべての要素は初期化されます。初期化の値は配列変数の型に依存しています。
配列変数の型 |
配列要素の初期値 |
---|---|
Boolean 型、Byte 型、Integer 型、Long 型、Single 型、Double 型、または Currency 型 |
0 |
固定長 String 型 |
指定された長さの文字列を NULL 文字 (Chr(0)) で埋めます。 |
可変長 String 型 |
空の文字列 ("") |
Variant 型 |
EMPTY |
クラス |
NOTHING |
ユーザー定義のデータ型 |
各要素のデータ型の初期値 |
arrayName
宣言またはサイズを変える配列の名前です。arrayName では配列を指定しなければなりません。配列を含む Variant 型の変数は指定できません。
bounds
arrayName の各次元の範囲を表すカンマで区切られたリストです。各次元の範囲は次の構文で記述します。
[ lowerBound To ] upperBound
lowerBound はその次元に指定できるサブスクリプトの下限値で、upperBound は上限値です。lowerBound を指定しないと、配列要素の最小の既定は Option Base ステートメントで 1 に変更しない限りゼロです。
配列の範囲は -32768 以上 32767 以下の値です。
type
オプション。有効なデータ型、ユーザー定義型、またはクラスです。arrayName の型を示します。
すでに存在する配列の型は変更できません。arrayName が以前に宣言されていて type をこの ReDim ステートメントに記述するには、type を元の arrayName の型と同じにします。
ReDim ステートメントは動的配列の保存領域を確保します。ReDim ステートメントを必要なだけ使用して配列のサイズを任意に変更できます。配列のサイズを変えるたびに、LotusScript によって配列の領域が再確保されます。
Dim ステートメントと異なり、ReDim は配列に Private、Public、Static の指定ができません。これらの属性を動的配列に指定するには、最初の Dim ステートメント内で宣言します。動的配列を Dim ステートメントで宣言すると、LotusScript は配列要素の領域を確保しません。実際には ReDim を使用して領域を確保するまで、スクリプトでその配列は使用できません。
配列は 8 次元まで指定できます。最初の ReDim ステートメントで配列の次元数を配列に設定します。以降の ReDim ステートメントは各次元の上限と下限を変更できますが、次元数は変更できません。
Preserve が指定されていると、配列の最後の次元の上限値のみが変更できます。他の部分を変更しようとするとエラーとなります。
Dim ステートメントですでに宣言されて領域が割り当てられている固定長配列に ReDim は使用できません。
配列の配列であるコンテナ変数に ForAll を使用するときは、参照変数を ReDim しないでください。「不正な ReDim」エラーとなります。