'***************************************************************************************************
'   配列処理のサンプル                                              Module1(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'03/06/29(1.00)新規作成
'16/11/19(1.10)*.xlsm化
'20/02/11(1.11)コード整理等
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
'   ■■■ シート上のボタン起動処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST3
'* 機能  :配列処理のサンプル
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年06月29日
'* 作成者 :井上 治
'* 更新日 :2016年11月19日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Sub TEST3()
    '-----------------------------------------------------------------------------------------------
    Dim V(10) As Long                           ' Long型の配列(11要素)
    Dim W(1 To 10) As Long                      ' Long型の配列(10要素)
    Dim X() As Long                             ' Long型の配列(要素数不定)
    Dim Y(1 To 10, 1 To 10) As Long             ' Long型の配列(10×10要素)
    ' 不定要素数だった変数を11要素で初期化
    ReDim X(10)
    ' 要素数を表示
    MsgBox UBound(X) - LBound(X) + 1
    ' 11要素だった配列を初期化せずに21要素に拡張
    ReDim Preserve X(20)
    ' 要素数を表示
    MsgBox UBound(X) - LBound(X) + 1
End Sub
'------------------------------------------<< End of Source >>--------------------------------------
'***************************************************************************************************
'   配列処理サンプル                                                Module1(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'03/06/29(1.00)新規作成
'16/11/19(1.10)*.xlsm化
'20/02/11(1.11)コード整理等
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
'   ■■■ シート上のボタン起動処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST4
'* 機能  :配列処理のサンプル
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年06月29日
'* 作成者 :井上 治
'* 更新日 :2016年11月19日
'* 更新者 :井上 治
'* 機能説明:配列で定数(のようなもの)を作る例
'* 注意事項:
'***************************************************************************************************
Sub TEST4()
    '-----------------------------------------------------------------------------------------------
    Dim vntArray As Variant                                 ' 配列変数
    Dim lngIx As Long                                       ' 配列用INDEX
    ' 列番号からA1方式の列を判定するようなケース
    vntArray = Array(, "A", "B", "C", "D", "E", "F", "G")
    ' 配列要素を順にループ
    For lngIx = 1 To UBound(vntArray)
        MsgBox lngIx & "列目は" & vntArray(lngIx) & "列です。"
    Next lngIx
End Sub
'------------------------------------------<< End of Source >>--------------------------------------
'***************************************************************************************************
'   配列処理サンプル                                                Module1(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'03/06/29(1.00)新規作成
'16/11/19(1.10)*.xlsm化
'20/02/11(1.11)コード整理等
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
'   ■■■ シート側からの起動処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST5
'* 機能  :2次元配列操作のサンプル(連番を2次元配置)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年06月29日
'* 作成者 :井上 治
'* 更新日 :2016年11月19日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Sub TEST5()
    '-----------------------------------------------------------------------------------------------
    Dim tblVal(9, 9) As Long                        ' Long型の配列(10×10要素)
    Dim lngIx1 As Long                              ' テーブルINDEX
    Dim lngIx2 As Long                              ' テーブルINDEX
    Dim lngCnt As Long                              ' 件数カウンタ
    ' 1次元目(行)のループ
    For lngIx1 = 0 To 9
        ' 2次元目(列)のループ
        For lngIx2 = 0 To 9
            ' カウンタを加算
            lngCnt = lngCnt + 1
            ' 配列要素に値をセット
            tblVal(lngIx1, lngIx2) = lngCnt
        Next lngIx2
    Next lngIx1
     ' ある要素の値を表示
    MsgBox tblVal(4, 9)
End Sub
'------------------------------------------<< End of Source >>--------------------------------------
'***************************************************************************************************
'   配列処理サンプル                                                Module1(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'03/06/29(1.00)新規作成
'16/11/19(1.10)*.xlsm化
'20/02/11(1.11)コード整理等
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
'   ■■■ シート側からの起動処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST6
'* 機能  :2次元配列操作のサンプル(連番を2次元配置=JAG配列)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年06月29日
'* 作成者 :井上 治
'* 更新日 :2016年11月19日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Sub TEST6()
    '-----------------------------------------------------------------------------------------------
    Dim tblFld(9) As Long                           ' Long型の配列(10要素)
    Dim tblVal(9) As Variant                        ' Variant型の配列(10要素)
    Dim lngIx1 As Long                              ' テーブルINDEX
    Dim lngIx2 As Long                              ' テーブルINDEX
    Dim lngCnt As Long                              ' 件数カウンタ
    ' 1次元目(行)のループ
    For lngIx1 = 0 To 9
        ' 内側配列の初期化
        Erase tblFld
        ' 2次元目(行)のループ
        For lngIx2 = 0 To 9
            ' カウンタを加算
            lngCnt = lngCnt + 1
            ' 配列要素に値をセット
            tblFld(lngIx2) = lngCnt
        Next lngIx2
        ' JAG配列にセット
        tblVal(lngIx1) = tblFld
    Next lngIx1
     ' ある要素の値を表示
    MsgBox tblVal(4)(9)
End Sub
'------------------------------------------<< End of Source >>--------------------------------------
'***************************************************************************************************
'   ■■■ シート上のボタン起動処理 ■■■
'***************************************************************************************************
'* 処理名 :TEST3
'* 機能  :配列処理のサンプル
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年06月29日
'* 作成者 :井上 治
'* 更新日 :2016年11月19日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Sub TEST3()
    '-----------------------------------------------------------------------------------------------
    Dim V(10) As Long                           ' Long型の配列(11要素)
    Dim W(1 To 10) As Long                      ' Long型の配列(10要素)
    'Dim X() As Long                             ' Long型の配列(要素数不定) ←※コメントにしてみた!
    Dim Y(1 To 10, 1 To 10) As Long             ' Long型の配列(10×10要素)
    ' 不定要素数だった変数を11要素で初期化
    ReDim X(10)
    ' 要素数を表示
    MsgBox UBound(X) - LBound(X) + 1
    ' 11要素だった配列を初期化せずに21要素に拡張
    ReDim Preserve X(20)
    ' 要素数を表示
    MsgBox UBound(X) - LBound(X) + 1
End Sub