Access VBA:動的に配列を確保する

配列は通常、Dim s(10) のようにあらかじめ必要分を宣言し使用しますが、最初に決められない場合もあります。

例えば下の例のように、レコード数分を確保する場合、レコード数が増加すると使えなくなります。

そこで、プログラム実行中に必要数を確保することを「動的に確保する」といいます。
動的に確保するには、Redimステートメントを使用します。
■使用例
Dim s() as string    要素数を入れずに宣言します。

Redim s(10) Redimで必要数を設定し再度宣言します。



BackHome BackTips Backメニュー

■実行Access画面
テーブルを開き、動的に作成した配列に製品コードを入れその後、テキストボックスに表示しています
配列を確保しフィールドデータを入れる

■実行順
1)ボタンのクリックイベントで開始
2)テーブルを開きます
3)レコード数分、配列を確保します
4)ループでレコード数分、配列にフィールドのデータを入れます
5)For Next で配列のデータをテキストボックスに表示します。

■ Access VBA 実行コード例

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Dim hairetu() As String
    Dim lcount As Long
    Dim rs As Recordset
    Dim i As Long
    Set rs = CurrentDb.OpenRecordset("M_製品マスター_2009年度")
    rs.MoveLast
    '配列確保
    ReDim hairetu(rs.RecordCount)
    i = 0
    rs.MoveFirst
    Do Until rs.EOF
        hairetu(i) = rs("製品コード")
        i = i + 1
        rs.MoveNext
    Loop
            Set rs = Nothing
    Me!テキスト1 = ""
    For i = 0 To UBound(hairetu) - 1
        Me!テキスト1 = Me!テキスト1 & hairetu(i) & vbCrLf
    Next
End Sub


BackHome BackTips Backメニュー

Copyright(C) FeedSoft