IBM Lotus Symphony
|
変数や配列を宣言します。
複数の変数をカンマで区切った場合 (例えば、DIM sPar1, sPar2, sPar3 AS STRING)、最後の Variant 変数のみを定義できます。これを回避するには、変数ごとに分けて定義する必要があります。
DIM sPar1 AS STRING
DIM sPar2 AS STRING
DIM sPar3 AS STRING
Dim ステートメントで宣言される変数は、サブルーチン内部でのみ有効な局所変数です。大域変数を宣言するには、PUBLIC または PRIVATE ステートメントを使用する必要があります。
[ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]
VarName: 変数または配列の名前。
Start, End: 要素の数 (要素数 = (End - Start) + 1) と索引範囲を定義する数値または定数。
プロシージャのレベルで ReDim を適用する場合、Start と End には数値表式を使えます。
VarType: 変数型を指定するキーワード。
キーワード: 変数型
Bool: ブール型変数 (True、False)
Currency: 通貨変数 (金額を示す小数点以下 4 桁の数値)
Date: 日付変数
Double: 倍精度型の浮動小数点変数 (1,79769313486232 x 10E308 から - 4,94065645841247 x 10E-324)
Integer: 整数変数 (-32768 から 32767)
Long: ロング整数変数 (-2,147,483,648 から 2,147,483,647)
Object: オブジェクト変数 (注意: この変数を定義する場合は、Set ステートメントを使用する必要があります)
Single: 単精度型の浮動小数点変数 (3.402823 x 10E38 から 1.401298 x 10E-45)。
String: 最大 64,000 文字からなる文字列変数。
[Variant]: バリアント型変数 (定義によりすべてのデータ型を代入できる変数)。キーワードを省略した場合、DefBool や DefVar などのステートメントを使用していない限り、すべての変数は自動的にバリアント型とされます。
Lotus® Symphony™ Basic では、変数を明示的に宣言する必要はありません。ただし配列については、使用前に定義をしておく必要があります。Dim ステートメントで変数を宣言する場合、コンマで区切ることで複数の宣言を同時に行うことができます。変数のデータ型は、変数名の後に型宣言子またはキーワードを記入することで指定します。
Lotus Symphony 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 (0 も含めた) 計 21 個の要素を定義
REM 範囲は -15 から 5 まで
2 次元のデータフィールド
DIM text(20,2) as String REM 計 63 要素 (それぞれ 0 から 20 までの要素が 3 レベル分)
配列を使用する関数やサブルーチン内で、ReDim ステートメントにより配列の次元を定義すると、動的な配列を宣言できます。通常、いったん定義をした配列の次元は変更することができません。サブルーチン内では、ReDim ステートメントを使って配列の次元を定義できます。次元の定義には数値表式のみを使用できます。これは、必要最小限のフィールドのみを確保するためです。
Sub ExampleDim1
Dim sVar As String
Dim iVar As Integer
sVar = "Lotus Symphony"
End Sub
Sub ExampleDim2
REM 2 次元データフィールド
Dim stext(20,2) as String
Const sDim as String = " Dimension:"
for i = 0 to 20
for ii = 0 to 2
stext(i,ii) = str(i) & sDim & str(ii)
next ii
next I
for i = 0 to 20
for ii = 0 to 2
Msgbox stext(i,ii)
next ii
next I
End Sub