VBA_組み合わせ出力_5種
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.実行結果
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
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
~以下略
Author And Source
この問題について(VBA_組み合わせ出力_5種), 我々は、より多くの情報をここで見つけました https://qiita.com/hfp/items/78498180c31459f622b8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .