AccessVBAで2次元配列の初期化・要素数を取得し表示・ループで代入する

AccessのVBAで2次元配列の初期化は1次元と同じで、Eraseを使用します。 配列の要素数を取得するには、UBound関数を使用します。 これも取得する次元を指定するだけで1次元と同じです。

このページでは、フォームにボタンとテキストボックスを配置し、2次元配列の初期化・表示・代入を実行します。




BackHome BackTips Backメニュー

■ フォームの作成

リボンの[作成]~フォーム グループの[フォーム デザイン]をクリックします。
[フォーム デザイン]をクリック

フォームが作成されるので、下のコントロールを挿入します。
1.[配列初期化]を行うボタン
2.[配列表示]を行うボタン
3.[配列に代入]を行うボタン
4.配列のデータを表示するためのテキストボックス
フォームにコントロールを挿入

1.[配列初期化]ボタンを選択します。
2.クリック時イベントのプロパティで、[イベント プロシージャ]を選択します。
3.[…]ボタンをクリックし、VBE画面を表示します。
[配列初期化]ボタンのクリック時イベント

■ VBAの入力

Privateでこのフォーム内では使用できる、2次元配列を宣言します。
[配列初期化]ボタンのクリックイベント内に、Eraseステートメントを使ったVBAを入力します。
[配列初期化]ボタンのVBA

Option Explicit
Option Compare Database

Private varray(5, 3) As Variant

Private Sub コマンド0_Click()
    Erase varray
End Sub

[配列初期化]ボタンと同様に、[配列表示]ボタンもクリック時の[イベント プロシージャ]を表示し、下記のVBAを入力します。
UBound関数で、それぞれの要素数を取得し、Forループでデータをテキストボックスに入力しています。
[配列表示]ボタンのVBA

Private Sub コマンド1_Click()
    Dim i As Long
    Dim j As Long
    Dim k1 As Long
    Dim k2 As Long
    
    Me!テキスト3 = Null
    
    k1 = UBound(varray, 1)
    k2 = UBound(varray, 2)
    
    For i = 0 To k1
        For j = 0 To k2
            Me!テキスト3 = Me!テキスト3 & i & "," & j & " : " & varray(i, j) & vbCrLf
        Next
    Next
End Sub

[配列に代入]ボタンも同様に行います。
UBound関数で、それぞれの要素数を取得し、Forループでデータを代入しています。
[配列に代入]ボタンのVBA

■ VBAの実行

まず[配列初期化]ボタンをクリックし、次に[配列表示]ボタンをクリックします。
テキストボックスを見ると、何も値が表示されていなくて初期化されていることが分かります。
何も値が表示されていなくて初期化されている

まず[配列に代入]ボタンをクリックし、次に[配列表示]ボタンをクリックします。
テキストボックスに、配列の値が表示され正常に代入されているのが分かります。
配列の値が表示され正常に代入されている

最後に[配列初期化]ボタンから[配列表示]ボタンをクリックし、初期化されていることを確認してください。

BackHome BackTips Backメニュー

Copyright(C) FeedSoft