【ExcelVBA】配列を使用する方法

概要

配列とは、複数の同じデータ型の要素を1つのまとまりとして宣言した変数のこと。

以下に配列を使用したサンプルコードを掲載します。

配列の宣言

コード

Sub Function1()
   
    '配列宣言
    Dim stringArray(5) As String
    
End Sub

要点

  • 変数名は「stringArray」
  • 要素の型は「String」
  • 要素の個数は6 (5はインデックスの最大値, つまりインデックス0~5までの6個の要素を持つ)
  • 配列は固定長

配列の初期化 (直接指定)

コード

Sub Function2()
    
    '配列初期化
    Dim stringArray(5) As String
    stringArray(0) = "要素0"
    stringArray(1) = "要素1"
    stringArray(2) = "要素2"
    stringArray(3) = "要素3"
    stringArray(4) = "要素4"
    stringArray(5) = "要素5"
    
End Sub

要点

  • 全要素を1つずつ初期化する
  • 複数行使う

配列の初期化 (Array関数使用)

コード

Sub Function3()
    
    '配列初期化
    Dim stringArray() As Variant
    stringArray = Array("要素0", "要素1", "要素2", "要素3", "要素4", "要素5")
    
End Sub

要点

  • 1行で全要素を初期化できる
  • 可変長配列で宣言する場合はVariant型必須

配列の要素を読みだす

コード

Sub Function4()
    
    '配列初期化
    Dim stringArray() As Variant
    stringArray = Array("要素0", "要素1", "要素2", "要素3", "要素4", "要素5")
    
    '結果表示
    For Each v In stringArray
        Debug.Print (v)
    Next v
    
End Sub

要点

  • For-Each構文で全要素を読みだす

配列の要素を検索する

コード

Sub Function5()
    
    '配列初期化
    Dim stringArray() As Variant
    stringArray = Array("要素0", "要素1", "要素2", "要素3", "要素4", "要素5")
    
    '検索結果
    Dim resultArray As Variant
    resultArray = Filter(stringArray, "3", True)
    
    '結果表示
    For Each v In resultArray
        Debug.Print (v)
    Next v
    
End Sub

要点

  • Filter関数で"3"を含む要素を抽出

関連リンク

  1. 【ExcelVBA】目次
おすすめの記事