スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第3問 2章-1

次のコードは、実行するとメッセージボックスに”神奈川”と表示された。またコードの途中で要素数を増やしている動的配列のマクロである。空欄に入る適切な語句を解答しなさい。

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