- ベストアンサー
※ マクロ問題 順列の列挙 マクロで教えてください
マクロの初心者です。初心者でも分かるようなシンプルなプログラムで考えていただけませんか?自分なりに組んでみたのですがイマイチ上手く作動しません。色んな書き方があるとは思いますが、色んな考えかた(プログラムの書き方)を聞いてみたいと思って投稿させていただきました。 問1) 10個の中から、6個取る重複順列を列挙するプログラムをマクロで、書くとどうなるでしょうか? 問2) 8個の中から、5個取る重複順列を列挙するプログラムをマクロで、書くとどうなるでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>B1を起点に(10個の中から、6個取る重複順列を列挙する場合)なら210通りすべての組み合わせを表示 B列~G列に210行表示しました。 Sub 組合せ() Dim i As Long, v As Variant Dim n1 As Long, n2 As Long, n3 As Long, n4 As Long, n5 As Long, n6 As Long v = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J") For n1 = 1 To 10 - 5 For n2 = n1 + 1 To 10 - 4 For n3 = n2 + 1 To 10 - 3 For n4 = n3 + 1 To 10 - 2 For n5 = n4 + 1 To 10 - 1 For n6 = n5 + 1 To 10 i = i + 1 Cells(i, "B").Value = v(n1 - 1) Cells(i, "C").Value = v(n2 - 1) Cells(i, "D").Value = v(n3 - 1) Cells(i, "E").Value = v(n4 - 1) Cells(i, "F").Value = v(n5 - 1) Cells(i, "G").Value = v(n6 - 1) Next n6 Next n5 Next n4 Next n3 Next n2 Next n1 End Sub
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
結果をどう得たいのか、補足してください。 #そのそも「何の」マクロなんでしょうかね?ExcelのVBA? #ロト6とminiロトの予想アプリを探すほうが楽かも
お礼
ご指摘、ありがとうございます。 分かりにくい質問ですみませんでした。
補足
マクロって色々あるんですか?知りませんでした。ぼくの知りたいのはエクセルのVBAのことです。なにぶん最近、パソコンを始めたばかりで知らないことだらけです。質問の仕方が悪かったみたいで、失礼しました。 お察しの通り、ぼくのしたいことはロト6の予想をする時に組み合わせを自分なりに組んでみたいと思ったのです。なので、ご指摘の予想アプリを探したほうが楽だとは思いますが、自分で作ったもので色々検討しながら組み合わせの予想をしてみたいのです。そのほうが見えない何かを見いだせるのではないかと考えています。 初心者には無理だと言われれば、それまでなのですが自分でどこまでできるのかを試してみたいと思っています。お時間のあればご指導ください。 ぼくの知りたい結果は、例えば、A1セルでマクロをスタートさせたら、B1を起点に(10個の中から、6個取る重複順列を列挙する場合)なら210通りすべての組み合わせを表示させたいと思っています。 よろしくお願いします。
お礼
ご回答、ありがとうございます。 すごく、参考になりました。