AccessのVBAで配列の要素数と初期化を行う方法

AccessのVBAで配列を宣言・数字と文字列を代入・要素数の説明・代入された配列の使い方・初期化の方法を掲載しています。

配列とは、共通するデータをまとめて使用できるようにしたものです。

例えば、日付を31で、曜日を7の要素数で使用し、まとめて処理することができます。




BackHome BackTips Backメニュー

■ 配列の宣言と代入

下のように配列の宣言は、「Dim 変数名(添字) As データ型」で行います。
添字に配列の要素数を指定します。
配列の宣言と代入

Sub MyArray()
    Dim nary(5) As Long
    Dim i As Long
    
    nary(0) = "1000"
    nary(1) = "1001"
    nary(2) = "1002"
    nary(3) = "1003"
    nary(4) = "1004"
    nary(5) = "1005"
    
End Sub

■ 配列の要素数

配列の要素数は、0から始まり添字の数までになります。
下のnary(5)の場合、0から5なので要素数は6になります。
要素数以外の添字で使用すると、下のように「実行時エラー’9’ インデックスが有効範囲にありません。」のエラーになります。
配列の要素数

■ 配列の使い方 数値と文字列

配列に添字を指定することで、代入と取得が可能です。

下は配列の値が偶数の場合、表示するようにしています。
配列の値が偶数の場合、表示する

Sub MyArray()
    Dim nary(5) As Long
    Dim i As Long
    
    nary(0) = "1000"
    nary(1) = "1001"
    nary(2) = "1002"
    nary(3) = "1003"
    nary(4) = "1004"
    nary(5) = "1005"
    
    For i = 0 To 5
        If nary(i) Mod 2 = 0 Then
            Debug.Print nary(i)
        End If
    Next
    
End Sub

文字の場合も同様に使用できます。
下は配列に代入した文字列を全部つなげて表示します。
配列に代入した文字列を全部つなげて表示

Sub MyStrArray()
    Dim sary(5) As String
    Dim i As Long
    Dim s As String
    
    sary(0) = "aaa"
    sary(1) = "bbb"
    sary(2) = "ccc"
    sary(3) = "ddd"
    sary(4) = "eee"
    sary(5) = "fff"
    
    For i = 0 To 5
        s = s + sary(i)
    Next
    Debug.Print s
    
End Sub

■ 配列の初期化方法

配列を初期化するには、Eraseステートメントを使います。
下では、一度配列に代入した文字列を、Eraseステートメントで初期化し、再度表示することで初期化されたことを確認しています。
配列の初期化

Sub MyStrArray()
    Dim sary(5) As String
    Dim i As Long
    Dim s1 As String
    Dim s2 As String
    
    sary(0) = "aaa"
    sary(1) = "bbb"
    sary(2) = "ccc"
    sary(3) = "ddd"
    sary(4) = "eee"
    sary(5) = "fff"
    
    For i = 0 To 5
        s1 = s1 + sary(i)
    Next
    Debug.Print "s1:" & s1
    
    Erase sary
    
    For i = 0 To 5
        s2 = s2 + sary(i)
    Next
    Debug.Print "s2:" & s2
    
End Sub

関連する記事
動的に配列を確保する
動的に配列を作成しテーブル(クエリ)のデータを格納する
配列のクイックソート、Sort、Swap
Option Explicit で変数宣言を強制する
VBAの変数、Boolean、Integer、Long、Single、Double、Currency、Date、String


BackHome BackTips Backメニュー

Copyright(C) FeedSoft