1.概要
5種類の配列の組み合わせを出力するプログラム。
2.ソースコード
Option Explicit
Sub 組み合わせ_5種()
Dim ar0 As Variant
Dim ar1 As Variant
Dim ar2 As Variant
Dim ar3 As Variant
Dim ar4 As Variant
ar0 = Array("a1", "a2", "a3", "a4")
ar1 = Array("b1", "b2", "b3", "b4")
ar2 = Array("c1", "c2", "c3", "c4")
ar3 = Array("d1", "d2", "d3", "d4")
ar4 = Array("e1", "e2", "e3", "e4")
Call func_組み合わせ_5種(ar0, ar1, ar2, ar3, ar4)
End Sub
Function func_組み合わせ_5種(ar0, ar1, ar2, ar3, ar4 As Variant)
Dim m As Long '行方向のカウンタ
Dim kind_ As Long: kind_ = 5
Dim n_a, n_b, n_c, n_d, n_e '列方向のカウンタ
Dim Buf_() As Variant '生成した組み合わせのバッファ
ReDim Buf_(kind_)
'組み合わせ生成ループ
For n_a = 0 To UBound(ar0)
m = 0 '0行目を対象
Buf_(m) = ar0(n_a)
For n_b = 0 To UBound(ar1)
m = 1 '1行目を対象
Buf_(m) = ar1(n_b)
For n_c = 0 To UBound(ar2)
m = 2 '2行目を対象
Buf_(m) = ar2(n_c)
For n_d = 0 To UBound(ar3)
m = 3 '2行目を対象
Buf_(m) = ar3(n_d)
For n_e = 0 To UBound(ar4)
m = 4 '2行目を対象
Buf_(m) = ar4(n_e)
Call DebugPrintArray(Buf_)
Next
Next
Next
Next
Next
End Function
'配列のDebugPrint
Function DebugPrintArray(var As Variant)
Dim hoge As Variant
'改行無し、各要素間はスペース
For Each hoge In var
Debug.Print hoge + " ";
Next
'改行する
Debug.Print
End Function
3.実行結果
a1 b1 c1 d1 e1
a1 b1 c1 d1 e2
a1 b1 c1 d1 e3
a1 b1 c1 d1 e4
a1 b1 c1 d2 e1
a1 b1 c1 d2 e2
a1 b1 c1 d2 e3
a1 b1 c1 d2 e4
a1 b1 c1 d3 e1
a1 b1 c1 d3 e2
a1 b1 c1 d3 e3
a1 b1 c1 d3 e4
a1 b1 c1 d4 e1
a1 b1 c1 d4 e2
a1 b1 c1 d4 e3
a1 b1 c1 d4 e4
a1 b1 c2 d1 e1
a1 b1 c2 d1 e2
a1 b1 c2 d1 e3
a1 b1 c2 d1 e4
a1 b1 c2 d2 e1
a1 b1 c2 d2 e2
a1 b1 c2 d2 e3
a1 b1 c2 d2 e4
a1 b1 c2 d3 e1
a1 b1 c2 d3 e2
a1 b1 c2 d3 e3
a1 b1 c2 d3 e4
a1 b1 c2 d4 e1
a1 b1 c2 d4 e2
a1 b1 c2 d4 e3
a1 b1 c2 d4 e4
a1 b1 c3 d1 e1
a1 b1 c3 d1 e2
a1 b1 c3 d1 e3
a1 b1 c3 d1 e4
a1 b1 c3 d2 e1
a1 b1 c3 d2 e2
a1 b1 c3 d2 e3
a1 b1 c3 d2 e4
a1 b1 c3 d3 e1
a1 b1 c3 d3 e2
a1 b1 c3 d3 e3
a1 b1 c3 d3 e4
~以下略