OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:521
区分:プログラム  |  分類:VB  |  最終更新日:2014/06/20
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【VB6/VBA】配列の使い方
関連タグ:vb6, vba, 配列
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 92,380
VB6関連技術まとめ > 【VB6/VBA】配列の使い方

VB6/VBA で配列を作成する場合は、配列を宣言し各要素に値を代入するか、または array() 関数を使用します。

 

配列を宣言し各要素に値を代入する

VB6/VBA の配列は固定長配列のため、宣言する際に配列長を指定します。

 

Dim strArray(2) As String
strArray(0) = "AAA"
strArray(1) = "BBB"
strArray(2) = "CCC"

 

上記例では String 型の変数 strArray を 要素数 3 ( 0 ~ 2 ) の配列として宣言し、各要素に文字列を代入しています。

配列長を変更する場合は、宣言の際の数値を変更するか、もしくは動的に変更したい場合は ReDim ステートメントを使用します。

 

ReDim strArray(9)

 

上記例では配列長を 10 ( 0 ~ 9 ) に変更します。 ただし、ReDim ステートメントは配列を初期化しますので、ReDim ステートメントで変数を再宣言した時点で、それまでに代入した値は全て初期化されます。 値を保持したまま、動的に配列長を変更したい場合は、ReDim ステートメントに Preserve キーワードを指定します。

 

ReDim Preserve strArray(9)

 

上記例ではそれまでに代入した値を保持したまま配列長を変更します。

また、下記例では、ファイルから読み込んだ値を動的に配列に格納します。

 

【例】

Public Sub sample()
    Dim intCount As Integer
    Dim strFileName As String
    Dim strBuff As String
    Dim strArray() As String
    
    ' 読み込むファイルを設定
    strFileName = "C:\tmp\sample.txt"
    
    ' ファイルをオープン
    Open strFileName For Input As #1
    
    ' ファイルの読み込み
    intCount = 0
    Do Until EOF(1)                         ' ファイルの最後までループ
        Line Input #1, strBuff              ' ファイルから一行読み込み
        ReDim Preserve strArray(intCount)   ' 配列長を変更
        strArray(intCount) = strBuff        ' 配列の最終要素に読み込んだ値を代入
        intCount = intCount + 1             ' 配列の要素数を加算
    Loop
    
    ' ファイルをクローズ
    Close #1
    
    ' 読み込んだ値を確認
    Dim i As Integer
    For i = 0 To UBound(strArray)
        Debug.Print strArray(i)
    Next i
    
End Sub

array() 関数を使用する

array() 関数を使用して配列を作成する場合は、格納先の変数を Variant 型で宣言し、それに array() 関数の戻り値を代入します。

※ 格納先変数は必ず Variant 型にする必要があり、他の型の配列変数に格納しようとした場合は、エラーが発生します。

 

Dim varArray() As Variant
varArray = Array("aaa", "bbb", "ccc")

 

上記例では Variant 型で宣言された変数 varArray に配列 { "aaa", "bbb", "ccc" } を代入しています。 また、array() 関数は Variant 型の配列を返すため、配列要素を必ずしも文字列や数字型に統一する必要はありません。

 

varArray = Array("abc", 123, "def", 456)

 

上記例では文字列と数字が混在する配列が代入されます。

 

【例】

Public Sub sample()
    Dim varArray() As Variant
    
    ' array()関数で配列を作成
    varArray = Array("abc", 123, "def", 456)
    
    ' 配列の値を確認
    Dim i As Integer
    For i = 0 To UBound(varArray)
        Debug.Print varArray(i)
    Next i
    
End Sub

 

関連記事
外部リンク
外部リンクはありません。
- 記事検索 -