• ベストアンサー

エクセルでランダムな麻雀用座席表を作りたい。

各チーム4人で(計7チーム28名)のランダムな座席表を作りたいです。 http://oshiete1.goo.ne.jp/qa3376116.html を参考に作ったのですが、うまく機能しません。 各チーム代表者1名は固定して、残り21名を同じチームで対戦しないでなおかつランダムな振り分けをしたいです。 どなたか知恵を貸して戴けないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

#2です 補足を踏まえてアレンジ ’-------------------------------------------------------- Sub Macro1() Dim idx, R As Integer Dim a, aa As Variant aa = Split("A B C D E F G") Randomize For idx = 1 To 21 Sheets("Sheet3").Cells(idx, 4) = Rnd Next idx With Sheets("sheet3") .Activate .Cells(1, 1).CurrentRegion.Select Selection.Sort key1:=Range("d1"), Order1:=xlAscending, header:=xlGuess .Columns(2).ClearContents .Columns(4).ClearContents End With R = 1 For Each a In aa For idx = 1 To 3 Sheets("Sheet3").Cells(R, 2) = a R = R + 1 Next idx Next a End Sub ’-------------------------------------------------------- 参考まで

turube2000
質問者

お礼

有難う御座いました。 又、お礼が遅くなり申し訳ないです。

その他の回答 (3)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

試合を何試合するのかは解りませんが、なぜ乱数表でランダムに作る必要があるのですか? 各グループをA~GとしメンバーをそれぞれA1~A4とあらわした表を作り、2行目から4行目をそれぞれ1行ずらした表を作成すれば7パターンのの対戦表は作成されます。 それで試合数が足らなければ各チームの番号を同様に1列ずらしていけば違う対戦カードが組めます。

turube2000
質問者

補足

回答ありがとうございます。 確かに乱数で作る必要はないのですが、公平せいを出したいのと上記の場合4回戦したときにG4の人がA1と対戦する可能性がないと思うので・・・ でもかなり参考になりました。ありがとうです。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

関数?マクロ? >を参考に作ったのですが、うまく機能しません。 回答もそうですが、質問が曖昧だと回答が付きにくいよ 参考になさったリンク先の#5さんの回答を特に前提の所をよく読んでみてください どこに座席表を作りたいの? どこに参加者?28名の表があるの? 代表者の見分け方は?28名の表に含まれているの?別表になっているの? 上記の理由で何を回答していいのか分かりませんが シート1のセルA1から下方向に28名分の名前をランダムに並び替えるマクロだけ提示しておきます ’-------------------------------------------------------- Sub Macro1() Dim idx, R, C As Integer Randomize For idx = 1 To 28 Sheets("Sheet1").Cells(idx, 2) = Rnd Next idx With Sheets("sheet1") .Activate .Cells(1, 1).CurrentRegion.Select Selection.Sort key1:=Range("b1"),     Order1:=xlAscending, header:=xlGuess .Columns(2).ClearContents End With End Sub ’-------------------------------------------------------- リンク先の#5さんのマクロをアレンジしました 回答にはなっていないと思いますが 参考までに

参考URL:
http://oshiete1.goo.ne.jp/qa3376116.html
turube2000
質問者

補足

回答ありがとうございます。 補足でシート1に座席表、シート3に名簿と点数表を作っています。 シート1(A列に各卓、B列代表者名前、CDE列に参加者名前) シート3(A列に代表者を除いたNo.1~18,B列にチームA,A,A、B,B,B~G,G,Gまで C列に名前)です。 シート3の名簿に名前を記入するとチーム員同士被らないで自動で振り分けが出来るようにしたいです。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>を参考に作ったのですが、うまく機能しません。 どの回答を参考に、どのようにしてもうまくいかなかったのか、それを提示されては? どこに何があって、どこにどのように表示したいなども欠如してますし。