Accessむかむか ホーム >> TIPS一覧 >> TIPS

項目

 動的配列の利用

概要

 動的配列を利用する場合には、Redimを使用します。

 RedimにPreserveを指定すると既存の配列に格納されている値を失うことなく
 配列の最後の次元の要素数を変更する事ができます。
 Preserveを指定しない場合には既存の値を失います。

方法

Option Compare Database
Option Explicit

'---------------------------------------------------
'■Preserveを指定しない場合
'---------------------------------------------------
Private Sub btArrayTest1_Click()

    Dim arrayTest() As String
    Dim element
    
    ReDim arrayTest(1)
    
    arrayTest(0) = "arrayTest0の要素"
    arrayTest(1) = "arrayTest1の要素"

    For Each element In arrayTest
        Debug.Print element
    Next
    
    '============================
    '(出力結果)
    '----------------------------
    'arrayTest0の要素
    'arrayTest1の要素
    '----------------------------

    ReDim arrayTest(3)
    arrayTest(2) = "arrayTest2の要素"
    arrayTest(3) = "arrayTest3の要素"
    
    For Each element In arrayTest
        Debug.Print element
    Next
    
    '============================
    '(出力結果)
    '----------------------------
    'arrayTest2の要素
    'arrayTest3の要素
    '----------------------------
    
End Sub

'---------------------------------------------------
'■Preserveを指定した場合
'---------------------------------------------------
Private Sub btArrayTest2_Click()

    Dim arrayTest() As String
    Dim element
    
    ReDim arrayTest(1)
    
    arrayTest(0) = "arrayTest0の要素"
    arrayTest(1) = "arrayTest1の要素"

    For Each element In arrayTest
        Debug.Print element
    Next
    
    '============================
    '(出力結果)
    '----------------------------
    'arrayTest0の要素
    'arrayTest1の要素
    '----------------------------

    ReDim Preserve arrayTest(3)         'Preserveを指定
    arrayTest(2) = "arrayTest2の要素"
    arrayTest(3) = "arrayTest3の要素"
    
    For Each element In arrayTest
        Debug.Print element
    Next
    
    '============================
    '(出力結果)
    '----------------------------
    'arrayTest0の要素
    'arrayTest1の要素
    'arrayTest2の要素
    'arrayTest3の要素
    '----------------------------
    
End Sub
Copyright (C) Accessむかむか