간혹 가다가 지식인 질문에 조합과 관련한 질문이 올라오곤 한다.
아래는 중복을 포함한 모든 조합의 예제이다.
Sub program1472_com()
    Dim str As String, T As String
    str = InputBox("조합할 문자를 넣어주세요.", "문자조합", "ABCDE")    '// 조합하 문자를 입력받는다
    Dim i As Long, n As Integer
    Dim V As Variant, D As Variant, x As Variant
    Dim Max As Long, cnt As Integer
    cnt = Len(str)  '// 문자의 갯수
    Max = cnt ^ cnt '// 모든 조합의 수를 구함
    ReDim V(1 To cnt)   '// 문자를 넣을 배열 생성
    For i = 1 To cnt    '// 문자의 길이만큼 순환
        V(i) = Mid(str, i, 1)   '// 배열에 문자를 담는다.
    Next
    ReDim x(1 To cnt + 1)   '// 각 열별 조합 갯수를 구할 배열을 만듬
    x(cnt + 1) = 1  '// 첫번째 문자의 Step 1
    For i = cnt To 1 Step -1    '// 문자의 갯수만큼
        x(i) = x(i + 1) * cnt   '// 해당 열의 조합 갯수(Step)를 구함
    Next
 
    ReDim D(1 To Max)   '// 전체 조합 갯수만큼 배열을 만듬
    For i = 1 To Max    '// 전체 조합 갯수만큼 순환하면서
        T = ""  '// 조합 문자를 담기위하여 비움
        For n = 2 To cnt + 1    '// 조합할 문자 갯수만큼 순환하면서
            If Len(T) Then T = T & ","  '// 조합문자가 비어있지 않으면 ,를 삽입
            T = T & V((((((i - 1) \ x(n)) + 1) - 1) Mod cnt) + 1)   '// 해당 열의 문자를 생성
        Next
        D(i) = T    '// 조합한 문자를 배열에 담음
    Next
    [A1].Resize(Max).value = Application.Transpose(D)   '// 시트에 행열을 바꾸어 뿌려줌
End Sub
ABC를 조합 할경우 아래와 같이 결과가 나온다.