VBA TIPS - 配列の利用Advertisement静的配列宣言書式Dim 配列名(要素数) As 型 例 Dim names(10) As String Dim Array(5) As Object要素数に指定できるのは、基本データ型の数値と定数のみ。 値の代入、取得書式:値の代入配列名(添字) = 値 書式:値の取得 配列名(添字) 例 Dim names(2) As Integer names(1) = 10 ' 値の代入 MsgBox names(1) ' 値の取得 動的配列利用例1.要素数を指定しないで配列を宣言するDim Array() As Integer 2.要素数が決定したら、ReDimを利用して領域再割り当てを行う。 ReDim 配列名(要素数) As 型 例 ReDim names(10) As String 静的宣言→要素数の変更静的宣言を行った配列に対する領域の再割り当ては、エラーとなる。例
Dim names(2) As Integer
ReDim names(3) As Integer
' ↑エラー
既存のデータを残す/残さないPreserveオプションを指定すると、既存のデータを残したまま配列の拡張・縮小を実行することができる。書式 ReDim Preserve names(5) As String 例:既存のデータを残す場合 Dim sample() As Integer Redim sample(1) As Integer sample(1) = 5 Redim Preserve sample(2) As Integer sample(2) = 10 Debug.Print sample(1) + sample(2) 結果 15 例:既存のデータを残さない場合 Dim sample() As Integer Redim sample(1) As Integer sample(1) = 5 Redim sample(2) As Integer sample(2) = 10 Debug.Print sample(1) + sample(2) 結果 10 配列Tips配列要素の既定値を指定VBAでは、配列に対する添字の下限値がデフォルトで1となっている。他の言語では0から始まるものが多いので、混乱の元になる可能性がある。 Option句を利用すると、この下限値を0か1の好きなほうに設定することができる。 書式 Option Base [0|1] 例 Option Base [0] 静的配列に対する添字の下限値と上限値を指定する。Dim 配列名(添字の最小値 To 添字の最大値) As 型 配列に対する添字の最大値/最小値を取得する。最大値はUBound関数を、最小値はLBound関数を利用する。書式 UBound(配列) LBound(配列) 利用例 Dim names(2 To 10) As String Debug.print UBound(names) Debug.print LBound(names) 結果 10 2 Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログールビリヤード |