訪問して頂きありがとうございます。まさふくろーです。
この記事では、配列の要素数を動的に割り当てる方法をご紹介します。
目次
動的配列の宣言の仕方
動的配列を宣言する構文
Dim 変数名() As データ型
説明 |
動的配列を宣言するには、通常の変数同様、Dimステートメントを使用します。(Private、Publicステートメントも使用できます。) |
変数名の後に「()」(カッコ)のみを記述します。 |
動的配列の要素数を設定するには
動的配列の要素数を設定する構文
ReDim 変数名(要素数)
説明 |
動的配列とは、あらかじめ要素数が決まっていない配列のことです。 |
動的配列の場合、プログラムの中で配列の要素を割り当てる必要があります。 |
このための命令が、ReDimステートメントです。 |
動的配列の値を保ったまま要素数を増やすための構文
ReDim Preserve 変数名(要素数)
説明 |
ReDimステートメントは、プログラム内で何度も使用できますが、単に「ReDim 変数名(要素数)」とした場合、それまで配列に保持されていた内容が破棄されてしまいます。 |
破棄されないようにするには、Preserveキーワードを使用します。 |
サンプルプログラムで使用するステートメント
For Nextステートメント
For counter = start To end [ Step step ]
処理を記述
[ Exit For ]
Next [ counter ]
説明 |
counterの値がendになるまで処理を繰り返します。 |
指定項目 | 必須 | 説明 |
counter | 〇 | 繰り返し回数を格納する変数。カウンタ変数と呼びます。 |
start | 〇 | 初期値を指定。 |
end | 〇 | 終了値を指定。 |
Step step |
ー |
stepには、1回ループする際に加算する量を指定。 |
「Step 2」とした場合、カウンタ変数は「0、2、4、6・・・」と2ずつ加算されます。 | ||
省略した場合、カウンタ変数は「1」ずつ加算されます。 | ||
stepには、マイナスの値も指定できます。 | ||
Exit For | ー | ループの途中で処理を終了したい場合に使用します。 |
Next | 〇 | 次の処理に移動します。 |
サンプルプログラムで使用する関数
UBound関数
UBound (arrayname , [ dimension ])
説明 |
UBound関数は、配列の指定された次元で使用できる最大の要素数を取得します。 |
指定項目 | 必須 | 説明 |
arrayname | 〇 | 配列変数の名前を指定。 |
dimension |
ー |
多次元配列の場合、どの次元の最大値を取得するかを指定。 |
3次元配列「Dim A(1 To 100, 0 To 3, -3 To 4)」の場合、dimension「1」を指定すると「100」を取得、dimension「2」を指定すると「3」を取得、dimension「3」を指定すると「4」を取得します。 | ||
省略した場合は、dimension「1」を指定したものと見なされます。 |
サンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Private Sub Sample() Dim arry() As String Dim i As Integer ReDim arry(1) arry(0) = "りんご" arry(1) = "みかん" ReDim Preserve arry(2) arry(2) = "いちご" For i = 0 To UBound(arry) MsgBox "配列" & i + 1 & "番目の要素 = " & arry(i) Next End Sub |
1 | Subプロシージャ「Sample」を作成。 |
3 | 動的配列変数「arry()」(文字列型)を宣言。 |
5 | カウンタ変数「i」(整数型)を宣言。 |
7 | 動的配列の要素数を「2」に設定。 |
9 | 配列の1番目の要素に、文字列「りんご」を代入。 |
10 | 配列の2番目の要素に、文字列「みかん」を代入。 |
12 | 動的配列の内容を保持したまま要素数を「3」に変更。 |
14 | 配列の3番目の要素に、文字列「いちご」を代入。 |
16 | 配列の要素数だけ以下の処理を繰り返す。 |
17 | 配列に設定された内容をメッセージボックスに表示する。 |
実行結果
説明 |
配列の要素数を変更しても、配列変数に設定した値(りんご、みかん)がメッセージボックスに表示されます。 |
配列の要素数を変更した後に設定した値(いちご)がメッセージボックスに表示されます。 |
最後まで読んでいただき、ありがとうございました!
配列の関連記事はこちら
本のまとめ関連記事はこちら