誕生日にもらった意外なもの

マクロの初心者です。初心者でも分かるようなシンプルなプログラムで考えていただけませんか?自分なりに組んでみたのですがイマイチ上手く作動しません。色んな書き方があるとは思いますが、色んな考えかた(プログラムの書き方)を聞いてみたいと思って投稿させていただきました。

問1)
10個の中から、6個取る重複順列を列挙するプログラムをマクロで、書くとどうなるでしょうか?

問2)
8個の中から、5個取る重複順列を列挙するプログラムをマクロで、書くとどうなるでしょうか?

よろしくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

すごく、参考になりました。

お礼日時:2012/08/07 19:23

結果をどう得たいのか、補足してください。



#そのそも「何の」マクロなんでしょうかね?ExcelのVBA?
#ロト6とminiロトの予想アプリを探すほうが楽かも

この回答への補足

マクロって色々あるんですか?知りませんでした。ぼくの知りたいのはエクセルのVBAのことです。なにぶん最近、パソコンを始めたばかりで知らないことだらけです。質問の仕方が悪かったみたいで、失礼しました。

お察しの通り、ぼくのしたいことはロト6の予想をする時に組み合わせを自分なりに組んでみたいと思ったのです。なので、ご指摘の予想アプリを探したほうが楽だとは思いますが、自分で作ったもので色々検討しながら組み合わせの予想をしてみたいのです。そのほうが見えない何かを見いだせるのではないかと考えています。

初心者には無理だと言われれば、それまでなのですが自分でどこまでできるのかを試してみたいと思っています。お時間のあればご指導ください。

ぼくの知りたい結果は、例えば、A1セルでマクロをスタートさせたら、B1を起点に(10個の中から、6個取る重複順列を列挙する場合)なら210通りすべての組み合わせを表示させたいと思っています。

よろしくお願いします。

補足日時:2012/07/29 19:00
    • good
    • 0
この回答へのお礼

ご指摘、ありがとうございます。
分かりにくい質問ですみませんでした。

お礼日時:2012/07/29 22:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています