ReDim Statement

変数や配列を宣言します。

構文:

[ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

オプションとして Preserve キーワードをパラメーターとして使えば、再宣言される配列の内容を保持することが出来ます。

パラメーター:

VarName: 変数ないし配列の名前。

Start, End:要素数 (要素の数 = (end-start)+1) とインデックス範囲を定義する数値または定数。

プロシージャーレベルで ReDim を記述する場合は、開始および終了値に数値表式を使用できます。

VarType: 変数型を指定するキーワード。

キーワード: 変数型

Bool:ブール型変数 (True、False)

Date: 日付変数

Double: 倍精度型の浮動小数点変数 (1.79769313486232 × 10E308 から 4.94065645841247 × 10E-324)

Integer: 整数変数 (-32768 から 32767)

Long: ロング整数変数 (-2,147,483,648 から 2,147,483,647)

Object: オブジェクト変数 (この変数を定義する場合は、Set ステートメントを使用する必要があります)

[Single]: 単精度型の浮動小数点変数 (3.402823 × 10E38 から 1.401298 × 10E-45)。 キーワードを省略した場合、DefBool から DefVar までのステートメントを使用していないかぎり、すべての変数は自動的に単精度型とされます。

String: 最大 64,000 テキストからなる文字列変数。

Variant: バリアント型変数 (定義によりすべてのデータ型を代入できる変数)。

LibreOffice Basic では、変数を明示的に宣言する必要はありません。 ただし、配列はあらかじめ定義をしておく必要があります。 Dim ステートメントで変数を宣言する場合、コンマで区切ることで複数の宣言を 1 度に行うことができます。 変数のデータ型は、変数名の後に型宣言子またはキーワードを付けることで指定します。

LibreOffice Basic では 1 次元および多次元配列を使用することができ、変数宣言をする際に変数型を指定します。配列は、プログラム中でリストやテーブルを操作する場合に適しています。配列を使用するメリットとして、インデックスを指定することで配列中の各要素にアクセスできる点がありますが、これらのインデックス指定には数値表式や変数が使えます。

Dim ステートメントで宣言する際に、配列の長さ (インデックスの範囲) は下記の2通りの方法で指定できます。

DIM text(20) As String REM 0から 20 の 21 要素

DIM text(5 to 25) As String REM 5から 25 の 21 要素

DIM text$(-15 to 5) As String REM 21 要素 (0 を含む)

rem 範囲は -15 から 5 まで

サブルーチンや関数のプロシージャーレベルでReDimにより次元を指定する場合、変数フィールドはそのタイプにかかわらず動的に作成できます。 通常、配列の範囲は1度設定したら、その後変更することはできません。 プロシージャー内部では、ReDim ステートメントを使って配列を宣言する際に、フィールドサイズの範囲指定に数式を使用できます。

例:

Sub ExampleRedim

Dim iVar() As Integer, iCount As Integer

ReDim iVar(5) As Integer

For iCount = 1 To 5

    iVar(iCount) = iCount

Next iCount

ReDim iVar(10) As Integer

For iCount = 1 To 10

    iVar(iCount) = iCount

Next iCount

End Sub