色々と考え方が間違ってたので
修正版
組み合わせ最大5個、C7セルに総ループ回数を表示
Sub Macro1()
'---配列準備---
Dim ループ回数 As Long
Dim kisuu As Long
kisuu = Range("B1").Value
Dim hairetu(101), hairetu1(100), hairetu2(100), hairetu3(100), hairetu4(100), syoukei, saidai As Long
For I = 1 To 100
hairetu(I) = Cells(I + 1, 2).Value
hairetu1(I) = Cells(I + 1, 2).Value
hairetu2(I) = Cells(I + 1, 2).Value
hairetu3(I) = Cells(I + 1, 2).Value
hairetu4(I) = Cells(I + 1, 2).Value
Next
hairetu(101) = 0
hairetu1(100) = 0
hairetu2(99) = 0
hairetu3(98) = 0
hairetu4(97) = 0
'---ここからメイン---
saidai = 0
For rupu = 101 To 1 Step -1
For rupu1 = 100 To 1 Step -1
For rupu2 = 99 To 1 Step -1
For rupu3 = 98 To 1 Step -1
For rupu4 = 97 To 1 Step -1
'ここから↓
ループ回数 = ループ回数 + 1
If (rupu <> 100 And rupu = rupu1) Or (rupu <> 99 And rupu = rupu2) Or (rupu <> 98 And rupu = rupu3) Or (rupu <> 97 And rupu = rupu4) Or _
(rupu1 <> 99 And rupu1 = rupu2) Or (rupu1 <> 98 And rupu1 = rupu3) Or (rupu1 <> 97 And rupu1 = rupu4) Or _
(rupu2 <> 98 And rupu2 = rupu3) Or (rupu2 <> 97 And rupu2 = rupu4) Or (rupu3 <> 97 And rupu3 = rupu4) Then
Exit For
End If
syoukei = hairetu(rupu) + hairetu1(rupu1) + hairetu2(rupu2) + hairetu3(rupu3) + hairetu4(rupu4)
If syoukei >= kisuu Or saidai > syoukei Then
Exit For
End If
If saidai < syoukei Then
saidai = syoukei
If rupu <> 101 Then
Range("C1") = rupu
Else
Range("C1") = ""
End If
If rupu1 <> 100 Then
Range("C2") = rupu1
Else
Range("C2") = ""
End If
If rupu2 <> 99 Then
Range("C3") = rupu2
Else
Range("C3") = ""
End If
If rupu3 <> 98 Then
Range("C4") = rupu3
Else
Range("C4") = ""
End If
If rupu4 <> 97 Then
Range("C5") = rupu4
Else
Range("C5") = ""
End If
Range("C7") = ループ回数
End If
If saidai = kisuu - 1 Then
Exit Sub
End If
'ここまで↑
'この部分が本体でループを増やすことで組み合わせ個数を増やせます
Next
Next
Next
Next
Next
End Sub
お礼
何度も丁寧に教えていただきありがとうございます 組み合わせの個数を絞らないと無理なのはよくわかりました でも、残念ながら組み合わせの個数を絞っては今回の問題を解消できません せっかく教えていただいて申し訳ありませんでした でも今回教えていただいたプロシージャから学ぶべきことが多々ありますので 無駄にはしません