次のコードは、実行するとメッセージボックスに”神奈川”と表示された。またコードの途中で要素数を増やしている動的配列のマクロである。空欄に入る適切な語句を解答しなさい。
Sub Exam1()
Dim A() As String
【 ① 】A(1)
A(0) = "東京"
A(1) = "神奈川"
【 ① 】【 ② 】 A(2)
A(2) = "愛知"
MsgBox A(1)
End Sub
正解
【 ① 】redim
【 ② 】preserve
解説
・動的配列・・・配列の宣言時にいくつの値を格納するかわからない時に、要素数を指定せず宣言する配列のことです。
構文:Dim A() As String
・ReDim・・・プロシージャの中で要素数を指定するときに使います
構文:ReDim 変数(要素数)
・Preserve・・・Preserveを使用せず、ReDimのみとすると、ReDim A(2)で既存の値 A(0) ”東京”、A(1)、「神奈川」は通常は消えしまいA(2) =に"愛知"のみ反映されます。動的配列で既存の値を消さないで変更する際にReDim Preserveと記述します。
【コード解説】
Sub Exam1()
Dim A() As String
' 動的配列Aを宣言する。
ReDim A(1)
' 配列Aのサイズを2(インデックス0と1)に設定する。
A(0) = "東京"
' 配列Aのインデックス0に「東京」を代入する。
A(1) = "神奈川"
' 配列Aのインデックス1に「神奈川」を代入する。
ReDim Preserve A(2)
' 配列のサイズを3(インデックス0から2)に拡張し、既存のデータを保持する。
A(2) = "愛知"
' 配列Aのインデックス2に「愛知」を代入する。
MsgBox A(1)
' 配列Aのインデックス1の値「神奈川」をメッセージボックスで表示する。
End Sub