たかなっちの高校生物 > プログラミング > トーナメントの作成(Excel版)Ver1.2 |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
トーナメントの作成(Excel版)Ver1.2 ■ はじめに ■
■ サンプル ■
■ 使用方法(Ver1.2) ■ ▼このファイルには「エントリー」「トーナメント表」という2枚のシートがあります。 下は「エントリー」シートの一部です。 テニスなどの場合、選手にはランキングがあり、強い選手同士がトーナメントの下位のトーナメントで対戦しないようにします。 この原則を表現するために、参加選手名をシード順(強い順)に入力します。 もしくは、選手をランダムに入力してシード番号を入力しても結構です。 番号の入力がなければ、上位から順に番号を自動的に割り振ります。 なお、シード以外の選手は抽選になるでしょうから、このシートには入力しません。 ▼下図は「トーナメント表」シートです。 左上の黄色の「作成」ボタンを押すと、トーナメント作成マクロが実行されます。 ▼上図の「作成」ボタンを押すとこの画面が現れます。 エントリー数のところに参加数を入力します。 エントリー数は32767まで可能ですが、1万を超えるようなものは処理に時間がかかるので覚悟して下さい。 ▼「自動取得」ボタンを押すと、自動的にエントリー者を数えます。 Ver1.2で追加したボタンです。 入力は半角でも全角でも構いません。 また、「列」「行」のところに数字を入れることによってトーナメント表を作成する位置を任意に変えることができます。 特に位置指定がなければ空欄のままで結構です。 ▼「トーナメント表の作成」を押すとマクロが進行します。 上のメニューの「列」と「行」を空欄のままにすると、この画面が現れます。 ▼「列」と「行」の指定がなければ自動的に設定します。参加数を確認する画面です。 よろしければ「OK」を押します。 ▼両面のトーナメントとは、見開きの本のように左右にトーナメント表があり、中央が決勝戦でつながるような描画方法です。 対して、片面のトーナメントは下の図のように、決勝戦が一番右にくるような描画方法です。 ちなみに富士山型のような縦書きの描画はできませんのであしからず。 ▼ここまでの対話をしながら進めていくと、あとは自動的に下のようなトーナメント表が作成されます。 このマクロの特筆すべき所は、番号の振り方です。 上図は11名がエントリーしたときのトーナメント表ですが、選手名(県名)の右側のシード番号に注目して下さい。 例えば、「1」の「北海道」がシード番号「2」の「青森県」が勝ち上がって対戦するのはトーナメントの決勝(てっぺんの山)です。 同様に「2」の「青森県」は、自分よりも一つランキングの低い「3」の「岩手県」と対戦するのは準決勝です。 このようにシードとは、より高いランクのシード選手が有利になるようにトーナメントが作られています。 作成が完了するとこの画面が表示されます。 「OK」を押します。 ▼html形式で保存するかどうかを尋ねる画面です。 「はい」を押すと、『protour.htm』のファイル名でカレントフォルダに保存されます。 「いいえ」を押すと、マクロが終了します。 ▼html形式で保存するかどうかを尋ねる画面です。 「はい」を押すと、『protour.htm』のファイル名でカレントフォルダに保存されます。 「いいえ」を押すと、マクロが終了します。今回のVer1.2の改良では、「エントリー」シートのエントリー者数を数える「自動取得」ボタンと、html形式で保存する機能を追加しました。 このマクロでは、片面トーナメントだけでなく両面トーナメントも作成できます。 エントリー数は32767まで可能です また、関数を一切使用していないので、マクロでトーナメントを作成した後に、列幅の変更やセルの消去がトーナメント表を変えてしまうということはありません。 シートを丸ごとコピーして新しいブックに貼り付けても問題は生じません。トーナメント表は自由に体裁を整えたり、シートを追加して関数を利用することができます。 リーグ表などを組み合わせてより使いやすいようにして結構ですが、加工して再配布するのは避けて下さい。 配布する場合は、プログラムファイルに説明ファイルを同梱して配布するか、Vectorダウンロードサイトからのダウンロードを勧めて下さい。 このプログラムの著作権は放棄しません。 |
|||||||||||||||||||||||
|