配列変数を宣言する方法は何通りかあります。最初の方法では、空のかっこ“()”を使用し、配列の型を明示的に指定します。
'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 ループと共に使用されます。次の例では、配列 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 つのステートメントで複数の変数を宣言できます。