エクセルマクロで、配列の一部を別の配列へ入れる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」に格納します。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】配列処理を自動化する使用例まとめ
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説