【エクセルマクロ】配列の一部を別の配列へ入れる:8選

VBA-配列の一部を別の配列へ入れる-アイキャッチ ExcelVBA

エクセルマクロで、配列の一部を別の配列へ入れるVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。

配列の一部を別の配列へ入れる(一次元配列の最初)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a()  As Variant
Dim b(0) As Variant
    
    '一次元配列に値格納
    a = Array("りんご", "みかん", "いちご", "ぶどう", "らくさんぼ", "まんごー")

    '配列aの値を、配列bに格納
    b(LBound(b)) = a(LBound(a))

End Sub
マクロ実行後

1次元配列の一部を、別の配列へコピーします。

配列「a」のインデックス番号「0」の値を、

配列「b」に格納します。


 
 

配列の一部を別の配列へ入れる(一次元配列の末尾)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a()  As Variant
Dim b(0) As Variant
    
    '一次元配列に値格納
    a = Array("りんご", "みかん", "いちご", "ぶどう", "らくさんぼ", "まんごー")

    '配列aの値を、配列bに格納
    b(UBound(b)) = a(UBound(a))

End Sub
マクロ実行後

1次元配列の一部を、別の配列へコピーします。

配列「a」の最後のインデックス番号の値を、

配列「b」に格納します。


 
 

配列の一部を別の配列へ入れる(一次元配列の全部)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a()  As Variant
Dim b() As Variant
    
    '一次元配列に値格納
    a = Array("りんご", "みかん", "いちご", "ぶどう", "らくさんぼ", "まんごー")
    
    ReDim Preserve b(UBound(a))

    '配列aの値を、配列bに格納
    b = a

End Sub
マクロ実行後

配列「a」のすべての値を、

配列「b」に格納します。


 
 

配列の一部を別の配列へ入れる(一次元配列の一部)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a(10) As Variant
Dim b() As Variant
Dim i As Long
Dim Cnt As Long

    Cnt = 0

    '一次元配列に値格納
    a(0) = "りんご"
    a(1) = "みかん"
    a(2) = "いちご"
    a(3) = "ぷらむ"
    a(4) = "ぶどう"
    a(5) = "ばなな"
    a(6) = "らくさんぼ"
    a(7) = "おれんじ"
    a(8) = "もも"
    a(9) = "れもん"
    a(10) = "まんごー"

    '配列ループ
    For i = 0 To UBound(a)
      
        'インデックス番号が5以上だったら
        If i >= 5 Then
            ReDim Preserve b(Cnt)
            
            '配列aの値を、配列bに格納
            b(Cnt) = a(i)
            Cnt = Cnt + 1
        End If
    Next i

End Sub
マクロ実行後

一次元配列の一部を、別の配列へコピーします。

配列「a」のインデックス番号が「5」以上の値を、

配列「b」に格納します。


 
 

配列の一部を別の配列へ入れる(一次元配列の条件一致)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a(10) As Variant
Dim b() As Variant
Dim i As Long
Dim Cnt As Long

    Cnt = 0

    '一次元配列に値格納
    a(0) = "青りんご"
    a(1) = "みかん"
    a(2) = "いちご"
    a(3) = "甘いりんご"
    a(4) = "ぶどう"
    a(5) = "りんごジュース"
    a(6) = "らくさんぼ"
    a(7) = "赤りんご大"
    a(8) = "もも"
    a(9) = "りんご"
    a(10) = "まんごー"

    '配列ループ
    For i = 0 To UBound(a)
      
        '配列「a」にりんごを含んでいたら
        If a(i) Like "*りんご*" Then
            ReDim Preserve b(Cnt)
            
            '配列aの値を、配列bに格納
            b(Cnt) = a(i)
            Cnt = Cnt + 1
        End If
    Next i

End Sub
マクロ実行後

一次元配列の一部を、別の配列へコピーします。

配列「a」の値に「りんご」を含む場合、

配列「b」に格納します。


 
 

配列の一部を別の配列へ入れる(二次元配列の最初)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a(2, 2) As Variant
Dim b(0, 0) As Variant

    '二次元配列に値格納
    a(0, 0) = "りんご"
    a(0, 1) = "みかん"
    a(0, 2) = "いちご"

    a(1, 0) = "ぶどう"
    a(1, 1) = "らくさんぼ"
    a(1, 2) = "まんごー"

    a(2, 0) = "れもん"
    a(2, 1) = "おれんじ"
    a(2, 2) = "きうい"

    '配列aの値を、配列bに格納
    b(LBound(b, 1), LBound(b, 2)) = a(LBound(a, 1), LBound(a, 2))

End Sub
マクロ実行後

2次元配列の一部を、別の配列へコピーします。

配列「a(0, 0)」の値を、

配列「b(0, 0)」に格納します。


 
 

配列の一部を別の配列へ入れる(二次元配列の末尾)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a(2, 2) As Variant
Dim b(0, 0) As Variant

    '二次元配列に値格納
    a(0, 0) = "りんご"
    a(0, 1) = "みかん"
    a(0, 2) = "いちご"

    a(1, 0) = "ぶどう"
    a(1, 1) = "らくさんぼ"
    a(1, 2) = "まんごー"

    a(2, 0) = "れもん"
    a(2, 1) = "おれんじ"
    a(2, 2) = "きうい"

    '配列aの値を、配列bに格納
    b(LBound(b, 1), LBound(b, 2)) = a(UBound(a, 1), UBound(a, 2))

End Sub
マクロ実行後

2次元配列の一部を、別の配列へコピーします。

配列「a(2, 2)」の値を、

配列「b(0, 0)」に格納します。


 
 

配列の一部を別の配列へ入れる(二次元配列の全部)

以下のExcelVBAを実行すると、配列の一部を別の配列へ入れます。


Sub 配列の一部を別の配列へ入れる()

Dim a(2, 2) As Variant
Dim b() As Variant
Dim i As Long
Dim j As Long

    '二次元配列に値格納
    a(0, 0) = "りんご"
    a(0, 1) = "みかん"
    a(0, 2) = "いちご"

    a(1, 0) = "ぶどう"
    a(1, 1) = "らくさんぼ"
    a(1, 2) = "まんごー"

    a(2, 0) = "れもん"
    a(2, 1) = "おれんじ"
    a(2, 2) = "きうい"
    
    '要素数を指定
    ReDim Preserve b(UBound(a, 1), UBound(a, 2))
    
    '配列aをループ
    For i = LBound(a, 1) To UBound(a, 1)
    
        '配列aをループ
        For j = LBound(a, 2) To UBound(a, 2)
        
            '配列bに、配列aの値を格納
            b(i, j) = a(i, j)
    
        Next j
    Next i

End Sub
マクロ実行後

配列「a」のすべての値を、

配列「b」に格納します。


 
 

この記事がお役に立てれば幸いです。
 

【エクセルマクロ】配列処理を自動化する:使用例16選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説