|    | 
     こんな感じでいかがでしょう? 
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つ以上でも取得できると思います。 
 
 | 
     
    
   |