No.2ベストアンサー
- 回答日時:
こんにちは。
ヒマなのでwwwwマクロ作りました。すんげぇ長文レスなので覚悟してくださいw
そもそも乱数表というものがよく判らないのですが、組み合わせの条件が相当複雑になります。
例えば下記のURL先の乱数表を見てください。
http://www.geocities.jp/ttc1jp/order.html
これの9人の列を見てほしいんですが、2コートで実施した場合、9回,10回目のところで
6番さんが両コートでプレイしなければならなくなります。
9人などコート数が2コートだけで良いのであればこういうのも排除できるんですが、
13人以上で2コートでも3コートでも出来てしまう場合、乱数表だけでは必ず6番さんのような
重複が発生してしまいます。
そこで、乱数表のフォーマットからちょびっと外れるかも知れないんですが、
(1) 最初にコート数を指定する
(2) 前回参加できなかった人(見学者)は次回に優先的に参加できる
(3) ひとりの人を同時に別コートで試合という無茶はさせない
(4) ランダムにこだわる
というマクロを作ってみました。
【つかいかた】
<マクロ準備編>
(1)新規ブックを開き、とりあえず名前をつけて保存します。『てにす乱数表.xls』にしましょうか。
(2)メニューバーから、ツール→マクロ→Visual Basic Editorを選択します。
Visual Basic Editorが起動します。
(3)左側に「VBAProject(てにす乱数表).xls」というのがあると思います。
ツリー状になっていて、左の[+]で展開していくと、「ThisWorkbook」という
ものが表示されると思います。
(4)その「ThisWorkbook」をダブルクリックします。
右側に「~~.xls - Thisworkbook(コード)」というウインドウが表示されます。
(5)そこに、下記のコードをコピー&ペーストしてください。
(6)Visual Basic Editorを閉じます。
(7)ここで一旦上書き保存しておきましょう。
<データ準備編>
(1)セルA1に、コート数を入力してください。数字でお願いします。
(2)セルB1から横方向に、人数を入れていってください。
(3)セルA2から縦方向に、試合数を入れていってください。
こんなかんじ
_A__B_C_D__E__F__G__H__I__J__K
1| 3 5 6 7 8 9 10 11 12 13 14…
2| 1
3| 2
4| 3
5| 4
6| 5
7| 6
:
<データ作成編>
(1)メニューバーから、ツール→マクロ→マクロ と選択してください。
(2)実行するマクロの一覧に「ThisWorkbook.乱数表作成」というのがでるので、
それを選択して「実行」してください。
(3)砂時計が消えたら完成です。
このマクロは実行するたびに結果が変わります。気に入らなかったら何度でも
やり直してください。
また、全セルを消去すれば、データ準備からやり直すことも出来ます。
好きな表をいくつでも作ってください。
ちなみに100人とかデータ数がえらく膨大になると、なかなか計算が終わりませんので。
その場合は気長に待ってください。
'-----マクロ ここから-----
Sub 乱数表作成()
Dim iRow As Integer
Dim iCol As Integer
Dim iCnt As Integer
Dim iCnt2 As Integer
Dim iTmp As Integer
Dim sNum() As String
Dim bChk() As Boolean
Dim bChk2() As Boolean
Dim bFull As Boolean
Dim iCourt As Integer
iCol = 2
Do Until Cells(1, iCol) = ""
iRow = 2
If Cells(1, 1) * 4 > Cells(1, iCol) Then
iCourt = Round(Cells(1, iCol) / 4 - 0.5, 0)
Else
iCourt = Cells(1, 1)
End If
ReDim sNum(iCourt * 4 - 1)
ReDim bChk(Cells(1, iCol))
ReDim bChk2(Cells(1, iCol))
For iCnt = 1 To Cells(1, iCol)
bChk(iCnt) = True
bChk2(iCnt) = True
Next iCnt
Do Until Cells(iRow, 1) = ""
iCnt = 0
Do Until iCnt = iCourt * 4
iTmp = Round(Rnd(Second(Now)) * Cells(1, iCol) + 0.5, 0)
If bChk(iTmp) And bChk2(iTmp) Then
sNum(iCnt) = "[" & Trim(Str(iTmp)) & "]"
iCnt = iCnt + 1
bChk(iTmp) = False
bChk2(iTmp) = False
bFull = False
For iCnt2 = 1 To Cells(1, iCol)
bFull = bFull Or bChk(iCnt2)
Next iCnt2
If bFull = False Then
For iCnt2 = 1 To Cells(1, iCol)
bChk(iCnt2) = True
Next iCnt2
End If
End If
Loop
Cells(iRow, iCol) = sNum(0)
For iCnt = 1 To iCourt * 4 - 1
Select Case iCnt Mod 4
Case 0
Cells(iRow, iCol) = Cells(iRow, iCol) & Chr(10) & sNum(iCnt)
Case 2
Cells(iRow, iCol) = Cells(iRow, iCol) & ":" & sNum(iCnt)
Case Else
Cells(iRow, iCol) = Cells(iRow, iCol) & sNum(iCnt)
End Select
Next iCnt
For iCnt = 1 To Cells(1, iCol)
bChk2(iCnt) = True
Next iCnt
iRow = iRow + 1
Loop
iCol = iCol + 1
Loop
End Sub
'-----マクロ ここまで-----
あー面白かったw ナイス暇つぶし。
解らないところがあったら聞いてください。
ありがとうございます。
すごく難しそうに感じますが・・・今からこれをプリントして、頑張ってやってみようと思います。ゲームのやり方としては、18人のダブルスの対戦表を作っておいて、(全ての組み合わせで)それを長い期間で消化していって、個人別に勝ち点をつけよう、という目的で使います。ダブルスなので常に2人は休みになる前提です。そうすると・・・コート数は4で作ってみれば大丈夫ですか?
No.4
- 回答日時:
A列はA1に1を入れる。
セルの右下にカーソルを合わせると黒十字のカーソルに変化する。これを必要なところまでドラッグして離し、連続データをクリックすると連続した数値が出る。B1に=RAND()と入れ、A列と同じ状態の黒十字を出し、今度は左クリックをして、下までドラッグ。(これでコピーできる。)
C1には一つずつ名前を入れる。
これで、A列の左上をクリックしてC列の右下までドラッグする。
これでセルの色が変わります。この状態でデータ→並べ替えを実行すれば、できます。
健闘を祈る!!
本当に丁寧に教えていただいてありがとうございます。
順不同で、ばらばらに並べ替えることが出来ました。
テニスのダブルス対戦表は、riodさんのやり方で作ることが出来ました。組み合わせ、並び替えなど、遠い昔の数学のようで、頭が痛くなりましたが、今回の経験で、私ももっとエクセルの事を知りたくなりました。
回答を寄せていただいた皆さんに感謝します。ありがとうございました。
No.3
- 回答日時:
>RANDの後の()の中には
何も入れません。こういう関数もあるのです。
これで、入れた範囲を選択して、データ→並べ替えで優先されるキーにRANDを入れた列を選択して改行で変化します。
あとRANDは何か確定するたびに(改行などを押す)変化します。また並べ替えた時も、数値順に並びません。ただし、ばらばらに入れ替わります。
ありがとうございます。TOngTOngさんに教えていただいて、途中になっている表でやってみていますが・・・本当に初心者で申し訳ないですー入れた範囲を選択して、とあるのは、A列にいれた1から18を選択するのですか?また、RANDを挿入するのはB1セルでいいのですか?
わからないことだらけの私ですが、親切な方がたくさんいるのだ、と初めてこの掲示板を利用して感激しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 J検【令和3年度後期 情報システム試験 システムデザインスキル】問題1(2)の解き方を教えてください 1 2022/03/22 18:36
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- その他(悩み相談・人生相談) 質問や回答を公開にして、誰かに見えるようにしておく。 皆さま、非公開ですが。 質問を見つけるのはキー 7 2022/11/26 06:03
- ノートパソコン 職場では使わない、仕事用のノートパソコンを買おうと思っているのですが、価格帯はいくら位のものが良いで 7 2022/05/10 19:04
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- その他(ブラウザ) 教えて!gooなのですが、投稿者名で検索されたら過去の質問が出てきてしまいますか? 3 2023/03/13 02:51
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- ルーター・ネットワーク機器 「マルチSIMルーター」について教えて下さい 3 2022/06/24 08:59
- 教えて!goo 回答者によって解決したのにベストアンサーをつけない意味は? 9 2022/11/02 18:52
- 大学受験 青山学院大学数学について質問です。 過去問を見たところ他の大学にはないこのような表記がありました。 2 2023/02/16 11:06
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
集合写真、どこに映る?
あなたが集合写真を撮られるとき、画角のどのあたりにいることが多いですか? 私は振り返ってみると右の端にいることが多い気がします。
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
テニス(ダブルス)乱数表 Excelマクロ
Excel(エクセル)
-
テニスの乱数表作成
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!!私服★ジャケットの上に...
-
ショート丈のニットがよく売っ...
-
アンゴラのコートは丈夫ですか?
-
コートのチャック閉めないで歩...
-
カシミヤ、アンゴラのコートに...
-
冬のコートを裏返しにして手に...
-
お店でコートを間違えられました。
-
ウールとレーヨンのコートについて
-
防寒にすぐれているのはダウン...
-
飲食店でのマナー(コート)
-
コートは右上?左上?
-
カシミアのコートは軽くて暖か...
-
そでが長い(Pコート)短くしたい
-
カシミヤのコートとダウンジャ...
-
プクプクのダウンコートは機内では
-
バーバリーヴィンテージコート...
-
そんなに非常識でしょうか?
-
奮発してカシミヤ100%のコート...
-
コートの中にカーディガンって...
-
めっちゃ重いコートは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!!私服★ジャケットの上に...
-
アンゴラのコートは丈夫ですか?
-
お店でコートを間違えられました。
-
飲食店でのマナー(コート)
-
コートは右上?左上?
-
ショート丈のニットがよく売っ...
-
奮発してカシミヤ100%のコート...
-
そんなに非常識でしょうか?
-
スーツの上にコートを羽織ると...
-
レストランでコートを間違えら...
-
営業職の方、客先でダウンコー...
-
カシミヤ、アンゴラのコートに...
-
プクプクのダウンコートは機内では
-
めっちゃ重いコートは
-
この服装はおかしいですか? 黒...
-
カシミアのコートは軽くて暖か...
-
バレー9チーム3コート総当た...
-
コートのチャック閉めないで歩...
-
上着や防寒具を脱ぐか脱がないか
-
洋服の生地で「WS」の表示は?
おすすめ情報