VBA 配列

配列の初期化

  • Erase」ステートメントを使用する。
  • 使用例:Erase 配列名
  • 静的配列の場合は、要素を再初期化、動的配列の場合は、メモリ開放
  • 静的配列:初期化後の値は、以下のとおり
配列のデータ型初期化後の値
数値配列0
文字列配列(可変長)長さ0の文字列(“”)
文字列配列(固定長)0
バリアント型配列Empty
オブジェクト配列Nothing

 

要素数の再設定

  • ReDim」ステートメントを使用して再設定するとすでに格納している値は無くなる。
  • 保持したい場合は、「Preserve」キーワードを指定する。
    使用例:ReDim Preserve 配列名(要素数)
  • 多次元配列の場合は、最後の次元の要素数のみ
    例えば、2次元配列の場合、列の要素のみの変更で、行の要素数は変更できない。

 

 Array関数

Dim arr As Variant
arr = Array("あいう", "かきく", "さしす")
  •  配列が格納されたバリアント型の値を返す関数
  • Array(ArgList)
  • 値のリストをカンマ区切りで指定
  • 多次元配列の作成はできない
  • 要素数が定義されている配列には使用できない

Split関数

Sub Split関数()
  Dim datas() As String
  Dim i As Long
  datas = Split(Range("A1"), ",")
    For i = 0 To UBound(datas)
        Debug.Print datas(i)
    Next i
End Sub
  • Split(expression,delimiter,count,compare)
  • 「expression」は必須項目で、文字列と区切り文字を含んだ文字列式を指定
  • 「delimiter」は省略可能で、文字列の区切りを識別する文字を指定
  • delimiterを省略すると、区切り文字に「count」は省略可能で、返す配列の要素数を指定する。
  • 「compare」は省略可能、文字列式を評価するときに使用する文字列比較のモードを指定する。「バイナリモード」で比較する場合は「vbBinaryCompare」、「テキストモード」で比較する場合は、vbTextCompare」を指定する「スペース」が使用される
  • 省略すると、区切り文字に「スペース」が使用
  • Option Base 1を指定しても「0」始まり

コメント