目次へ戻ります
VB サンプル


VB 配列操作・データ分解編

配列サイズの取得、変更など、配列に関する操作
●Split文字列を指定のセパレータで分解して配列へ格納する
●LBound配列で使用できる最小値を取得する
●UBound配列の大きさ(数)を取得する
●ReDim配列内のデータをクリアして配列サイズを変更する
●ReDim Preserve配列内のデータをクリアせずに配列サイズを変更する
●IsArray変数が配列であるかどうかを調べる
●Split 関数

【機能】文字列を指定のセパレータで分解して配列へ格納する。

【書式】result = Split ( 文字列 , デリミッタ )
【書式】result = Split ( 文字列 )

【 例 】
Dim strArry() As String
strArry = Split("AAA,BBB,CCC", ",")
strArry(0) = "AAA"
strArry(1) = "BBB"
strArry(2) = "CCC"

※ デリミッタ指定を省略した場合は、デリミッタはスペースになります。
※ デリミッタがタブの場合は、vbTab を指定します。
●LBound 関数

【機能】配列で使用できる最小の添字大きさ(数)を返します。

【書式】result = LBound ( 配列変数 )

【 例 】
Dim result
Dim strArry() As String
strArry = Split("AAA,BBB,CCC", ",")
result = LBound(strArry)



→ 0

●UBound 関数

【機能】配列の大きさ(数)を返します。

【書式】result = UBound ( 配列変数 )

【 例 】
Dim result
Dim strArry() As String
strArry = Split("AAA,BBB,CCC", ",")
result = UBound(strArry)



→ 2

【 例 】
Dim i
Dim strArry() As String
strArry = Split("AAA,BBB,CCC", ",")
If IsArray(strArry) Then
  For i = LBound(strArry) To UBound(strArry)
    Debug.Print strArry(i)
  Next i
End If

AAA
BBB
CCC

※ UBound関数は、配列の最大値を返します(実データの数を返すわけではありません)。
●ReDim ステートメント

【機能】配列内のデータをクリアして配列サイズを変更します。

【書式】ReDim 配列変数 ( 要素数 )

【 例 】
Dim strArry()
ReDim strArry(3)
strArry(0) = ""
strArry(1) = ""
strArry(2) = ""
strArry(3) = ""

※ ReDimステートメントは、配列データ内容を全てクリアして、配列のサイズを変更します。
※ Privateステートメント、Publicステートメント、または Dimステートメントで明示的にサイズを指定した配列変数の次元を再び宣言しようとすると、エラーが発生します。
●ReDim Preserve ステートメント

【機能】配列内のデータをクリアせずに配列サイズを変更します。

【書式】ReDim Preserve 配列変数 ( 要素数 )

【 例 】
Dim strArry() As String
strArry = Split("AAA,BBB,CCC", ",")
ReDim Preserve strArry(UBound(strArry) + 1)
strArry(0) = "AAA"
strArry(1) = "BBB"
strArry(2) = "CCC"
strArry(3) = ""

※ ReDim Preserve ステートメントは、配列データ内容をクリアせずに、配列のサイズを変更します。
※ 配列のサイズを小さくすると、削除された部分の配列データはなくなります。
※ Privateステートメント、Publicステートメント、または Dimステートメントで明示的にサイズを指定した配列変数の次元を再び宣言しようとすると、エラーが発生します。
●IsArray 関数

【機能】変数が配列であるかどうかを調べます。配列であれば、Trueを返します。

【書式】result = IsArray ( 変数 )

目次へ戻ります