- ベストアンサー
エクセルで数字を一つずつ使う数列を書き出したい
エクセルで1234567、1234576、3261457のような1~7の数字を一つずつ使う7桁の数列のすべてのパターンを書き出すことはできますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
okw1111 さん、こんばんわ 以下の手順でマクロを登録し、実行してください。 1) 任意のシートのタブを右クリックし、コードの表示(V) を選択する。 すると、Microsoft Visual Basic ウィンドウが表示されます。 2) ウィンドウ右側の大きな余白に、以下をコピーして貼り付けます。 '--------------------ここからコピー---------------------------- Sub パターン導出() Dim USEDF(7) As Boolean Dim TgtRow As Integer TgtRow = 1 Columns(1).Clear For a# = 1 To 7 For i# = 1 To 7 USEDF(i) = False Next i USEDF(a) = True For b# = 1 To 7 If USEDF(b) = False Then USEDF(b) = True For c# = 1 To 7 If USEDF(c) = False Then USEDF(c) = True For d# = 1 To 7 If USEDF(d) = False Then USEDF(d) = True For e# = 1 To 7 If USEDF(e) = False Then USEDF(e) = True For f# = 1 To 7 If USEDF(f) = False Then USEDF(f) = True For g# = 1 To 7 If USEDF(g) = False Then Cells(TgtRow, 1) = a & b & c & d & e & f & g TgtRow = TgtRow + 1 USEDF(g) = False End If Next g USEDF(f) = False End If Next f USEDF(e) = False End If Next e USEDF(d) = False End If Next d USEDF(c) = False End If Next c USEDF(b) = False End If Next b USEDF(a) = False Next a End Sub '--------------------ここまでコピー---------------------------- 3) マウスのカーソルを、上で貼り付けた箇所の任意の位置に合わせ、F5キーを押します。 4) Microsoft Visual Basic を終了すれば、A列に全ての組み合わせが表示されます。 全ての組み合わせ数は 7! = 5040 ですので、結果が5040個存在することを私の方で確かめました。
お礼
丁寧な回答ありがとうございます。 おかげで助かりました。