組み合せを出力するコードを書いてみました。Sheet1で行ってみます。
ツール→マクロ→Visual Basic Editor でVBE画面に移り、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、Sheet1をダブルクリック。出てきたコードウインドウに、下記コードをコピーして貼りつけます。
シートに戻り、ツール→マクロ→マクロ でKumiawaseJを実行します。
他の組み合わせを出すには、minDTに数字を昇順に、maxDTに数字を降順にセットします。7個の数値まで出してみました。
ここから
↓
Sub KumiawaseJ()
Const minDT = 12345 '最小の組み合せを数値で表現
Const maxDT = 54321 '最大の組み合せを数値で表現
Dim Dt As Long '任意の数値の組み合せ
Dim strDt As String '任意の数値の組み合せを文字にしたもの
Dim L As Integer 'カウンタ
Dim chkFlg As Boolean '判定
Dim rw As Long '行カウンタ
Cells.Clear
For Dt = minDT To maxDT
chkFlg = True '判定値を初期化
strDt = CStr(Dt) '数値を文字に変える
For L = 1 To Len(strDt)
'指定数値以外なら非該当
If InStr(CStr(minDT), Mid(strDt, L, 1)) = 0 Then
chkFlg = False: Exit For
End If
'指定数値が二重に現れたら非該当
If InStr(L + 1, strDt, Mid(strDt, L, 1)) > 0 Then
chkFlg = False: Exit For
End If
Next
If chkFlg = True Then
'満足する組み合せなので書き出す
rw = rw + 1
For L = 1 To Len(strDt)
Cells(rw, L) = Mid(strDt, L, 1)
Next
End If
Next
End Sub
お礼
すごいです!!ありがとうございます。これがやりたかったんです。 なんか説明不足だったみたいで・・・。 VBAってすごいですね。機会があったらかじってみようと思いました。