固定長と可変長(ReDim・Preserveの使い方)

VBAでは、複数のデータをまとめて扱う「配列」が便利です。
配列には、大きく分けて固定長配列可変長配列の2種類があります。
さらに、**可変長配列ではサイズ変更(再宣言)**もできるのが特徴です。

この記事では、それぞれの使い方と ReDim / Preserve の書き方まで、初心者向けにわかりやすく解説します。


1. 固定長配列とは?

サイズ(要素数)を最初に決める配列です。あとからサイズは変えられません。

例:

scores(1 To 5) As Integer
  • scores(1) ~ scores(5) まで、5個のデータが入ります。
  • 要素数が最初から分かっているときに便利です。

2. 可変長配列とは?

サイズを後から自由に変更できる配列です。

宣言と使い方:

Dim scores() As Integer  'サイズ未定の配列
ReDim scores(1 To 3) '必要なときにサイズを決定

このように、ReDim を使ってサイズを指定します。


3. ReDim でサイズを変更する

可変長配列は、ReDim を使って何度でもサイズを変えられます

Dim data() As String
ReDim data(1 To 2)
data(1) = "A"
data(2) = "B"

ReDim data(1 To 4) 'サイズを変更(ただし中身はリセットされる)

⚠️ 注意:ReDim を使うと、以前のデータはすべて消えてしまいます


4. ReDim Preserve でデータを残す

Preserve を使えば、今までのデータを保ったままサイズ変更ができます。

Dim data() As String
ReDim data(1 To 2)
data(1) = "Apple"
data(2) = "Banana"

ReDim Preserve data(1 To 3)
data(3) = "Cherry"

これで、1~2のデータはそのまま残り、3つ目を追加できます。


5. Preserve の注意点

  • Preserve が使えるのは、最後の次元だけです(2次元以上の配列では制限があります)。
  • ReDim でサイズを小さくすると、その分のデータは失われます。

6. まとめ

種類サイズ変更中身を保持使い方例
固定長配列できないDim arr(1 To 5)
可変長配列できる消えるReDim arr(1 To 3)
Preserve使用できる保たれるReDim Preserve arr(1 To 4)

7. おすすめの使いどころ

  • データ数が読めない場面 → 可変長配列+ReDim Preserve
  • あらかじめデータ数が分かっている → 固定長配列

配列は、データをまとめて管理するうえでとても便利な仕組みです。
特に ReDim と Preserve を覚えると、状況に応じて柔軟な配列操作ができるようになります!

コメント

タイトルとURLをコピーしました