目標
配列(動的配列)を理解して利用できる
配列の概要と利用方法
配列とは
配列とは複数の値を順番に保管することのできるデータ構造です。保管されるひとつひとつのデータの型は共通となります。
動的配列とは
配列には箱の数を「後から変えられないもの」と「後からでも変えられるもの」があります。このうち箱の個数を後から変更できるものを動的配列といいます。(後から変更できないものを静的配列といいます。)静的配列か動的配列かは宣言の仕方によって決まります。
配列の利用方法
配列の利用に重要なステートメント、キーワード、関数
Dimステートメント
ReDimステートメント
Preserveキーワード
Array関数
Variant型
LBound関数
UBound関数
Eraseステートメント
動的配列の利用方法(1)
前の記事で紹介した配列は箱の個数を変更できない静的配列でした。これに対して箱の個数を後からでも変更ができる動的配列についてみていきます。動的配列の宣言は次のようになります。
構文
‘最初の宣言時に箱の個数を指定しません。
Dim 配列変数名() As データ型
‘再宣言のステートメントReDimを利用して個数を指定します。
ReDim 配列変数名(4)
宣言
Dim 配列変数名() As String
ReDim 配列変数名(3)
代入方法
配列変数名(0) = “ひとつめの値”
配列変数名(1) = “ふたつめの値”
配列変数名(2) = “みっつめの値”
配列変数名(3) = “よっつめの値”
更に再宣言
ReDim 配列変数名(4)
再代入
※箱の個数を変更すると、これまで入力した値は失われます。
配列変数名(0) = “ひとつめの値”
配列変数名(1) = “ふたつめの値”
配列変数名(2) = “みっつめの値”
配列変数名(3) = “よっつめの値”
配列変数名(4) = “いつつめの値”
例文
Dim Hairetsu() As String
ReDim Hairetsu(3)
Hairetsu(0) = "あいうえお"
Hairetsu(1) = "かきくけこ"
Hairetsu(2) = "さしすえそ"
Hairetsu(3) = "たちつてと"
'更に変更を行います。
'※箱の個数を変更すると、これまで入力した値は失われます。その為、値を再代入しています。
ReDim Hairetsu(4)
Hairetsu(0) = "あいうえお"
Hairetsu(1) = "かきくけこ"
Hairetsu(2) = "さしすえそ"
Hairetsu(3) = "たちつてと"
Hairetsu(4) = "なにぬねの"
例文
Dim Hairetsu() As String
ReDim Hairetsu(3)
Hairetsu(0) = "あいうえお"
Hairetsu(1) = "かきくけこ"
Hairetsu(2) = "さしすえそ"
Hairetsu(3) = "たちつてと"
ReDim Preserve Hairetsu(4)
Hairetsu(4) = "なにぬねの"
動的配列の利用方法(2)
構文①
Dim 配列変数名() As Variant
代入方法
配列変数名 = Array(“ひとつ”,”ふたつ”,”みっつ”,”よっつ”,”いつつ”)
※ArrayはVariant型という型で配列を返すようになっています。
構文②
Dim 配列変数名() As Variant
代入方法
配列変数名 = [{“ひとつ”,”ふたつ”,”みっつ”,”よっつ”,”いつつ”}]
※こちらの代入方法でもVariant型という型で配列を返すようになっています。
例文
Dim Hairetsu() As Variant
Hairetsu = Array("ひとつ","ふたつ","みっつ","よっつ","いつつ")
MsgBox Hairetsu(0) & Hairetsu(1) & Hairetsu(2) & Hairetsu(3) & Hairetsu(4)
Variant型についてはこちらを参考にしてください。
配列で利用する関数
LBound…配列の最小の添え字番号を取得
利用方法
LBound(配列変数名)
UBound…配列の最大の添え字番号を取得
利用方法
UBound(配列変数名)
Erase…静的配列の中身を初期化します。動的配列の使用中メモリを解放します。
利用方法
Erase 配列名
静的配列の場合は値が次の表のように初期化されるので実行時エラーにはなりませんが、動的配列の場合は使用中メモリが解放される(配列がなくなる)ためErase後の呼び出しは実行時エラーとなります。
静的配列の場合は利用されている型によって初期化後の値が変わります。
配列の型 | Erase後の値 |
Integer,Long,Currency など数字に関するもの | 0 |
String | “” |
Object | Nothing |
Variant | Empty |
今回は以上となります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。