- ベストアンサー
エクセルでランダムな麻雀用座席表を作りたい。
各チーム4人で(計7チーム28名)のランダムな座席表を作りたいです。 http://oshiete1.goo.ne.jp/qa3376116.html を参考に作ったのですが、うまく機能しません。 各チーム代表者1名は固定して、残り21名を同じチームで対戦しないでなおかつランダムな振り分けをしたいです。 どなたか知恵を貸して戴けないでしょうか?
- みんなの回答 (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 ’-------------------------------------------------------- 参考まで
その他の回答 (3)
- web2525
- ベストアンサー率42% (1219/2850)
- hige_082
- ベストアンサー率50% (379/747)
関数?マクロ? >を参考に作ったのですが、うまく機能しません。 回答もそうですが、質問が曖昧だと回答が付きにくいよ 参考になさったリンク先の#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さんのマクロをアレンジしました 回答にはなっていないと思いますが 参考までに
補足
回答ありがとうございます。 補足でシート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)
>を参考に作ったのですが、うまく機能しません。 どの回答を参考に、どのようにしてもうまくいかなかったのか、それを提示されては? どこに何があって、どこにどのように表示したいなども欠如してますし。
お礼
有難う御座いました。 又、お礼が遅くなり申し訳ないです。