Crystal Reports  

配列変数の宣言(Basic 構文)

配列変数を宣言する方法は何通りかあります。最初の方法では、空のかっこ“()”を使用し、配列の型を明示的に指定します。

'x を数値型配列の
'グローバル変数として宣言します
Global x () As Number
'x を初期化します
x = Array (10, 20, 30)
'y を文字列型範囲配列の
'共有変数として宣言します
Shared y () As String Range
'y を初期化します
y = Array ("A" To "C", "H" To "J")

2 番目の方法では、配列であることと型を指定せずに変数を宣言し、その変数への最初の代入によってその型を完全に指定します。

'y をローカル変数として宣言し、
'型は指定しません
Dim y
'y の型は、ここで文字列型の配列に設定されます
y = Array ("日", "月", "火", "水", "木", _
"金", "土")

3 番目の方法では、変数が配列であることは宣言し、最初の代入まで完全には型を指定しません。y は上で宣言されているとします。

'z をローカル変数の配列として宣言します
Local z()
'z は Array ("月", "火") に設定され、文字列型の配列になります
z = y(2 to 3)

4 番目の方法では、宣言時に配列のサイズを明示的に指定します。この方法を使用した場合は、自動的に配列が作成され、デフォルト値を使って配列が満たされます。たとえば、数値型の配列の場合、各要素は 0 で初期化され、文字列型の配列の場合、各要素は空の文字列? ?で初期化されます。この宣言では実際に配列が作成されるので、配列のために確保する格納領域の大きさを Crystal Reports が判定できるように、As 句を付けて配列の型を指定する必要があります。

Dim a(2) As String
'配列 a の 1 番目の要素に値を代入します
a(1) = "good"
a(2) = "bye"
'文字列の連結には & 演算子を使用できます
'この式は文字列 "goodbye" を返します
formula = a(1) & a(2)

配列の要素への値の代入

配列の要素に値を代入したり、要素の値を使ってほかの計算に使用することもできます。

Global x() As String
x = Array ("hello", "bye", "again")
'x は Array ("hello", "once", "again") になります
x (2) = "once"
'配列のサイズが 3 なので、次のステートメントは
'コメントにしないとエラーになります
'x (4) = "zap"
'この式は文字列 "HELLO" を返します
formula = UCase (x (1))

Redim および Redim Preserve キーワードを使用すると、配列のサイズを変更して、配列に情報を追加できます。Redim は、以前の配列の内容を削除してから配列のサイズを変更します。一方 Redim Preserve は、以前の内容を保持します。

Dim x () As Number
Redim x (2) 'x は Array (0, 0) になります
x (2) = 20 'x は Array (0, 20) になります
Redim x (3) 'x は Array (0, 0, 0) になります
x (3) = 30 'x は Array (0, 0, 30)  になります
Redim Preserve x (4) 'x は Array (0, 0, 30, 0) になります
formula = "終了"

配列と For/Next ループ

配列は、よく For/Next ループと共に使用されます。次の例では、配列 Array (10, 20, 30, ..., 100) を作成し、For/Next ループでその配列を使用しています。

Dim b (10) As Number
Dim i
For i = 1 To 10
b(i) = 10 * i
Next i
formula = b(2) 'この式は数値 20 を返します

各宣言をカンマで区切ると、1 つのステートメントで複数の変数を宣言できます。

参照

For/Next ループ