| 
    
     |  | こんな感じでいかがでしょう? bit演算を利用した方法です。
 
 Private strArray() As String
 
 Sub CallGetComb()
 Call GetComb("ABCDE")
 End Sub
 
 Sub GetComb(strTarget As String)
 Dim lngLength As Long
 Dim lngDefault As Long
 Dim lngCount As Long
 Dim lngPrim As Long
 Dim lngElse As Long
 Dim i As Long
 
 lngLength = Len(strTarget)
 '文字列を1文字ごとに配列に格納
 ReDim strArray(1 To lngLength)
 For i = 1 To lngLength
 strArray(i) = Mid$(strTarget, i, 1)
 Next i
 
 '組み合わせ数 算出
 lngDefault = 2 ^ (lngLength) - 1
 lngCount = (lngDefault - 1) \ 2
 
 '組み合わせ取得
 For lngPrim = 1 To lngCount
 lngElse = lngDefault - lngPrim
 Debug.Print strGetPattern(lngPrim) & ":" _
 & strGetPattern(lngElse)
 Next lngPrim
 End Sub
 
 '数値を組み合わせ文字列にする関数
 Function strGetPattern(ByVal lngTarget As Long) As String
 Dim strBuf As String
 Dim i As Long
 Dim j As Long
 
 Do
 j = 2 ^ i
 If lngTarget < j Then Exit Do
 If lngTarget And j Then
 strBuf = strBuf & strArray(i + 1)
 End If
 i = i + 1
 Loop
 strGetPattern = strBuf
 End Function
 
 4つ以上でも取得できると思います。
 
 |  |