エントリー

カテゴリー「勝手にっ!大会支援」の検索結果は以下のとおりです。

オプション機能(抽選)

抽選機能です、と言っても自動抽選ではなく、抽選会での掲示用です。

パソコンを大型テレビに繋いで(S出力のあるノートですので)、順番に抽選番号を入れていきます。
ファイル 154-1.jpg
実際の抽選会では、大型テレビとの距離がありますので、無線LANでリモート入力をします。(最終版では)
(以前は、掲示用のプログラムを別に作って、無線LANで転送をしていましたが、何かと不具合があるので、この方式にしました)

抽選番号を入れると、対戦ブロックが表示されます。
ファイル 154-2.jpg
4角形の時は4チーム、3角形の時は3チーム表示されます。
実は、この抽選用の画面自体は、協会の抽選用ではなく、福野の大会の当日抽選用(プロジェクタ表示用)に作ったものを利用しただけです。

同一地区が同じブロックに入った場合は、エラーを表示します。
ファイル 154-3.jpg
又、同じ抽選番号の場合もエラーとなります。
ファイル 154-4.jpg
手動の入力ミス軽減に役にたったのかな?と思っています。

さて、次回はさらにオプションの説明です。

審判用紙

今回は審判用紙についてです。

大会の審判用紙は2種類あります、個人戦用と団体戦用です。

個人戦用

ファイル 153-1.jpg
個人戦用の審判用紙です、以下の内容をリーグコート及び決勝コートのシートからVBAにて入力、印刷を行います。

  • 大会名及び種目
  • 試合番号・コート番号(既に決まっている場合)
  • 審判
  • 対戦チーム名・地区名
  • バーコード(後ほど説明します)

なお、集計時の入力箇所を太枠で囲み、入力番号を振ってあります、入力ミスの軽減用の措置です。

団体戦用

ファイル 153-2.jpg
団体戦用の審判用紙です。

  • 大会名及び種目
  • 試合番号・コート番号(既に決まっている場合)
  • 対戦チーム名・地区名(双方)
  • バーコード(後ほど説明します)

VBAにて入力される内容は、審判が無い以外は殆んど一緒なんですが、オーダーシートを兼ねていますので、半分で切り離します。
そのため、相手シートに対戦相手を入れてあります。
又、団体戦ですので、集計には勝試合数が必要になってきますので、そちらも増えています。

この審判用紙は、予選の場合は抽選後すぐに予選対戦分の印刷を行います。(名簿シートに対戦表印刷の釦があります、抽選番号入力後にこの釦にて全予選対戦用の審判用紙の印刷を開始します。

さて、ここからはオプション機能のバーコードです。
このバーコードは、種目が多い場合の誤入力とか、団体戦の左右逆入力等を減らすために付けてあります。
バーコードの中には、種目、試合番号、左右入力(団体戦の場合のみ)等の情報が埋め込まれています。

バーコードリーダで、このバーコードを読み取ると、リーグ及びトーナメントの表で、対象の入力釦を押したのと同じようにポップアップが現れます。
ファイル 153-3.jpg
ファイル 153-4.jpg
団体戦の場合は、右上のバーコードを読み込めば、貼り付けてある順番に修正して表示されます。(左右が逆に貼り付けてあっても、その通りに表示されるようになっています)
あとは、テンキーで太枠の中の数値を入力していけばいいだけです。
また、個人戦の場合は、表示項目が少ないので、自動的に個人戦用の入力項目に変わります。

入力が完了し、決勝トーナメントで対戦相手が決まった場合は審判用紙の自動印刷を行います。
個人戦の場合は、選手審判の場合、審判も含めて決まった場合にすることも出来ます。

さて、次回からは、オプション機能を説明しています。

トーナメントテーブル

トーナメントテーブルです。
ファイル 149-1.jpg

トーナメントの表と対で作成しています。

これは、何をしているかと言うと、トーナメントの点数による、勝ち上がり算出と、負け審の時の算出を行っています。

1回戦までは、リーグの順位シートよりチーム名を引いてきます。
2回戦以降でシードで無い場合は得点により、チーム名を算出します。

あと、セルJ、Kにある英数字は、VBAによって入力された得点をトーナメントの表の何処に代入するかを示したセルの位置です。
J1のセルにあるシート名のシートの指定したセルにVBAで代入し、トーナメントシートのVBAで罫線を赤色にしていきます。

さて、次回は審判用紙です。

トーナメント表

さて、決勝トーナメントの表に入ります。

ファイル 144-1.jpg

本来なら、予選の順位からトーナメント名簿を作っていくべきなのですが、県協会用のものは、そこを省いています。
予選勝ちあがり数からトーナメント表を作るのは、そんなに難しくは無ですし、そこにブロックを当てはめることもそんなに難しくはないのですが、この表は最初に他の方が作った表に合わせなきゃいけないので、毎回手動で作っています。
小山をどこに持っていくかとか、どのブロックに当てはめるかとか、正直この作業、決まりを作って自動化すれば毎回のこの手間が無くなるんですがね、判ってもらえないんです。(おっと愚痴はこれくらいにして)

2年間やってきて、ある程度パターン化出来そうなので、今後の課題と言うことです。(当分は進展しないでしょうけど)

ちなみに、変則リーグは誰が作っても同じ表になるんで、自動化出来ています。

一応ブロック番号を入れると、チーム名と地区を引っ張って来ますので、予選順位が出次第、チーム名が入ってきます。

3行目から8行目まで、罫線でトーナメント表を書いていきます(手作業)
罫線の角のセルに数値を入れると、VBAで横の罫線を検索して、全体設定の勝ち点に達してる罫線を追従して赤色にしていきます。

現在はポップアップにて対戦結果を入力し、ここに自動で入力するようにしています。
ファイル 144-2.jpg
ちなみに、最終的には、このポップアップも使っていません、詳しくはまた後ほど。

トーナメントには、トーナメントコート表とトーナメントテーブル表がセットでありますが、トーナメントコート表はリーグコートの表と同じものですので、そちらを参照して下さい。

次回は、トーナメントテーブルです。

雛形シート(ブロック順位)

各ブロック毎の順位のチーム名を抽出するシートです。

ファイル 141-1.jpg

ここで抽出されたチーム名と市町村名が、決勝(場合によっては2次予選)の名簿へ入ります。
(抽出は自動ですが、決勝や2次予選への名簿は現在の所は手動リンクにしてあります、実際は大会毎にパターンが決まっていますので、パターン化してあります)

このシート自体はそんなに難しいことはしてありません、将来的に自動リンク(例えば2位まで上がるとか、順位リーグをするとか)を行うときに必要だと思って付けて見ました。

とりあえず、変則リーグはここまでです、変則リーグを使う限り、ここまでのシートの繰り返しになります。

さて、次はトーナメントです。

雛形シート(リーグコート)

さて、脱線ばかりしている訳にはいきませんので、そろそろ大会支援に戻ります。

今回はリーグコートです。

リーグコート
オーダシート兼審判用紙の印刷用のテーブルで、印刷を行うためのデータをこのシートに集めています。
変則リーグ・トーナメント共通のシートとなります、決勝トーナメント等で対戦相手が決まり次第、審判用紙を自動印刷するためのシートです。
又、種目毎のタイムテーブルの役割も行います。
ファイル 124-1.jpg

  • コート:コート番号を入力します
  • ブロック・試合順:ブロック番号と対戦順を入力します、この番号によりチーム名及び所属を持ってきます。
  • チーム名・所属:ブロック・試合順にて自動的に入力されます。
  • 審判:相互審判の場合、現在はここに直接相互審判と入力します、但し個人戦等の相互審判で無い場合は、空いてるチーム(基本的には3角形、4角形に関わらず、対戦しているチームの右回りのチーム)にチーム名が自動的に入ります。(相互審判フラグを将来追加予定)
  • 印刷指示:審判用紙が印刷出来る条件(対戦相手及び審判)が揃ったら、1となります、予選ではこのフラグは必ず立ちます、2次予選や決勝トーナメントのように、対戦結果が出ないと印刷できない場合用です。
  • 印刷完了:審判用紙の印刷が完了していることを示すフラグです、VBAにて印刷完了後にフラグを立てます。
  • 入力完了:対戦結果の入力が完了していることを示すフラグです、このフラグは空きコート番号を自動入力する時のためのもので、現在は使っていません。
  • 空きコート:使用していたコートが空いたことを、コート番号で示します、現在は使っていません。
  • コート移項:空きコートから本当に空いているコート番号だけをVBAにて検索し書き込みます、コートを使用すると(審判用紙の印刷により使用していると判断)ここのコート番号は消去されます、印刷時に空きコートとしてコート番号の欄に入力されます、現在は使っていません。
  • ポイント:入力が完了したかどうかの一時仮置きです、テーブルを直接参照してもいいのですが、演算が遅くなったので仮置きしました。

大したことはしていないのですが、対戦結果の流れがスムーズであれば結構効果を発揮します。

さて、現在は使っていない空きコートの検索機能ですが、一度だけ使用したことがあります、大失敗でしたけど・・・・。
この機能自体はうまく動作したんですが、以下のような理由によって使用しても意味があまりありませんでした。

  • 対戦結果を入力しないと、コート番号が判らない。
  • 空きコートを直感的に机上で把握しにくい。(これは致命的です、全体の流れをコート表等を作って表示させて見たんですが、スタッフ全員に伝わらないので)
  • コート番号の指示ミスや、変更に対応しにくい。(この時は、勝手にコート番号を変更されてしまったので、検索したコート番号とのずれが出てきました)

結局、タイムテーブルの意図を無視して、コート番号を勝手に変えると、コンピュータの演算で無くとも起こることなんですが、そうなった時に修正にかかる時間のことを考えると、コート番号は決まりを作って、人間が入れた方がいいのかなと思います。

現在は、色々とやってみて、バインダーの本部返還方式がベストだと感じています。
他の競技なんかでもこの方法がメジャーなんですが、何故かフレッシュテニスでは嫌がる人が多いんですが、何故でしょう?
(これ以上は愚痴になりますんで、他のページにて)

次回は雛形シート(ブロック順位です)

雛形シート(リーグテーブル)

今回はリーグテーブルと言う雛形シートを作っていきます。

このリーグテーブルは、試合結果の演算用のシートで、勝敗や得失点などから、ブロック順位を算出します。
ファイル 111-1.jpg
本来は、変則リーグもリーグ戦なので、リーグ戦のような表を考えていたんですが、3角形・4角形の時の処理やブロック順位、団体戦・個人戦の処理、あとこのシートを作成していたこ最初のころは、VBAを使わず直接っこに入力をしていたので、オーダーシートどうりに並んでいて欲しかったのもあります。
後日説明する、オーダーシートの印刷は、この順番(左右も含めて)で印刷を行います。
なぜ、この順番かと言うと、入力ミスの原因で一番多いのは、左右の入力ミスです。
特に複数の方により入力作業がある大会の場合は、この入力ミスの可能性が高くなっていきます。
ですから、変則リーグの表の左側にかいてあるチーム又は上に書いてあるチームは左に、右側に書いてあるチームと下側に書いてあるチームは右側に印刷したかったためです。(普通のリーグ戦の表で作ると逆になる所が出てきます)

チーム名等はリンクで変則リーグより持ってきます。
対戦結果は、VBAにて(直接も可能)入力され、得失点計算を行います。
基本的に、勝ち数×1000000+得失ゲーム数×10000+得失セット×100+得失点が総合得失の点数となり、この結果からブロック毎にRANK関数で順位を付けていきます。

このシートに限らず、他にも細かいことは色々としてるんですが、大体こんな感じです。

次回もまだ雛形シートを作りますよ。

雛形シート(変則リーグ:主に予選用)

さて、今回は予選に使われる変則リーグの対戦表の雛形を作っていきます。

このシートは個人戦・団体戦共通で、1ブロック3組(三角形)・1ブロック4組(四角形)のものを、同じシートで作ります。
何故かと言うと、三角形基本の場合は、チーム数を3で割った余りが4角形になりますし、四角形基本の場合は、チーム数を4で割った余りを4から引いた値が三角形になります。

つまり、チーム数の算出方法が違うだけで、その他は同じと言うことです。

ファイル 109-1.jpg

さて、この前の県オープンのデータです。
見えないシートでブロック数の計算をしています。

チーム名、地区名はVLOOKUPを使っています。
後は、演算用シート(順位や得失点計算をする別のシートです、後日説明をします)とリンクを貼ります(得点、順位など)。

又、生成釦を付け、VBAで罫線を描くようにします、何故かと言うと、条件付書式で斜め罫線が書けないからです、ただそれだけ。
罫線をVBAに任せたので、条件付書式で、予選通過等を赤色表示にすることが出来ます。

もう一つ、入力釦を全てのブロックに付けます。
これは、各ブロックの対戦結果をVBAのウインドウで入力を行うためです。
なぜこんなことをするかと言うと、この対戦表を表示したまま、演算用シートに入力したかったのと、この釦から様々なアクション(オーダシート自動印刷、プロジェクタ更新、空きコート検索等)をVBAで行うためです。

あと、この入力釦を押した時に表示及び入力するVBAウインドウを作ります。
ファイル 109-2.jpg
対戦順選択です。
ファイル 109-3.jpg
対戦結果の入力です。
これらの処理は、全てVBAにて行います。

現在は様々な理由から、特に必要が無い場合を除き、この入力釦を使わず、バーコードリーダとテンキーにて入力を行うようにしています。
主な理由は、種目の多い個人戦の場合に、違う種目への入力ミスの軽減、団体戦のオーダシートの左右逆貼り付けによる、入力ミスの軽減です。
特に、今回の県オープンでは、この逆貼り付けに関する威力は絶大でした。

バーコードに関する詳しいことは、又後日に説明をします。

さて、次は演算シートを作ります。

雛形シート(名簿)

さて、雛形シートとは何?ってことで、まず雛形シートの説明からです。

通常、エクセルでこういった大会の集計を行う場合は、名簿や対戦表などを作って、種目が複数ある場合は、そのシートをコピーして、修正してを繰り返します。
シート間をリンクして計算していたり、集計用に別のシートを作ったりといった作業を行われていると思います。
コピーする場合は、そのリンク先のシート毎にコピーしたり名前を変えればいいのですが、種目が多くなるとその手間が増えてきます。
その手間を雛形のシートを作ってVBAにさせようと言うわけです。(大した手間では無いのですが)

と言うわけで、まずは名簿シートを作ってみました。
ファイル 104-1.jpg ファイル 104-2.jpg

雛形シートを作る場合、手作業で作る場合と違って、固定のリンク先を使用することがほとんど出来なくなります、あくまで全体設定に従ってリンク先を変えるようにしなければいけません。
そこで、特定のセルに全体設定の対応番号を入れ、その番号で全体設定シートを参照し、対応したシートからリンクするようにします。(結構めんどくさいんだなこれが)
ここは、INDIRECT関数を使って参照するようにします。
名簿シートの場合は、大会名ぐらいですかね、他のシートはとんでもなくたくさん設定する必要がありますが、ここは又後日に。

さて、名簿シートに必要な項目を設定します。
個人戦の場合
・受付番号(No.)
・抽選番号
・チーム名
・所属
・選手名
チーム名は、選手名から自動的に姓を取得して作ります。
ただし、これを行うには決まりが必要です、多くの方が姓と名を別のセルにして作っておられます、それはそれでもいいのですが、コピーする時に多少の不具合が出てきます。
何かと言うと、1つのセルに姓名が入っている場合は、それを手作業で分けなければいけないのです、これが別セルになっているとめんどくさいんです。
エクセルで頂く場合は、別セルで記入してもらえばいいのですが、ワードやメールで頂く場合は、手動で姓をこっちのセル、名をこっちのセルって感じで手間が多くなります、大量にやっていると結構しんどいんです。
そこで、このシートでは、姓と名の間は空白で区切るようにします。
そうすると、単純にコピーできますし、セル分けしたものでも、合体シートを作れば、単純にコピー出来ます。
空白で区切るのは、LEFT関数とFIND関数を組み合わせれば出来ます。
但し、空白を全角か半角に統一したいので、ここでVBAのWorksheet_Changeイベントを使って半角空白を全角に変換しています。
所属は現在の県協会の方式だと、同一市町村が当たらないようにするためのものです、例えばここが同じ富山県同士は、抽選時に同一地区エラーとなるようにするためのものです。(抽選については又後日に)
あとは、条件付書式で入力された項目に罫線を入れて表の完成です。
団体戦の場合
・受付番号(No.)
・抽選番号
・チーム名
・所属
・選手名
団体戦に関しては、チーム名を名簿から作らず登録された名称になるのと、選手名の入力数が多い以外は個人戦名簿と同じです。

対戦表や抽選等を同じ演算及びVBAで行いたいので、要になるセルは個人・団体とも同じセル列に置きます。(抽選番号、チーム名、所属)

それと、追加、変更、削除があった場合に、その更新日がわかる様に、日付が入るようにしてあります。
これは、HPに掲載された名簿を印刷された場合、自分が持っている名簿が新しいのか古いのかを判断してもらい、不要なトラブルを避けるためです。
この更新日付けは、名簿だけではなく対戦表にも付きます。

さて、これで名簿シートが出来ました。
抽選釦や対戦表印刷釦に関しては、また後日説明します。

あと、時間が出来た時に、以下の機能の追加を予定しています。(いつになるやら)
・所属によるオーダ番号のソート
 同一所属同士が当たらないようにするためには、所属の多い順に抽選を行う必要があります、現在は手動で並び替えてるのですが、これをVBAでソートする機能を考えています。
(難しくは無いのですが、時間が中々取れなくて)
・印刷範囲自動設定
 現在は印刷範囲を手動で設定しているのですが、ここを自動設定で出来るようにします。
(これも、ルーチンはある程度確定しているのですが、多い場合の縮小とページ分けをどうするか悩んでいます)

さて、次回は対戦表の雛形シートを作ります、これが結構大変なんです。

大会支援(1)

大会支援をエクセルでするには、何が必要か改めてまとめてみました。
(2年ほどトライ&ゴーで直感的にやってきていたんで)

・名簿(団体戦・個人戦)
・対戦表(変則リーグ)
・決勝トーナメント表
・オーダー兼採点表(団体戦・個人戦)

最低限上記のものが必要なことは、すぐに判ります。
そして、その他にそれぞれのシートの演算を行うシート(隠しシート)と、その他オプション用のシート(プロジェクタ用や進度表示シート等)
そして、設定シートと、それぞれのシートを管理するプロジェクトシートが必要になってきます。

まずは、全体を管理するプロジェクトシートを作っていきます。
プロジェクトシートとすると、名前が長いのでシート名を全体設定として作成していきます。
ファイル 97-1.jpg
こんな感じです。
・大会名  :大会の名称
・予選方式 :予選は3角形基本か4角形基本かを設定します。
       3角形基本の場合は、3角形を作って行き割り切れない所は4角形で埋めていきます。
       4角形基本の場合はその逆です。
・予選通過数:予選を通過するチーム数を入力します(将来対応)
・カテゴリー:対戦が個人戦か団体戦かを指定します。
・勝ち点  :勝敗が決まる点数を入力します。
       個人戦の場合は今のルールでは3になります。
       団体戦の場合は2(3組1団体の場合)です。
その下の項目は、追加釦を押すと入力設定項目が現れます。
ファイル 97-2.jpg
・種目名  :種目の名称を入力します(男子フリーとか)
・種類   :リーグ戦かトーナメント戦かを設定します。
       全国大会のような2時予選にも対応しています。
・NAME   :シート名です、この名前でシートを作ります。
       他の種目と重複しない名前にする必要があります。
・リンク  :名簿をどのシートからリンクしてくるかを設定します。(将来対応)
       無しの場合は、名簿を参照します。
・リンク順位:上記のリンクシートのどの順位から名簿を持ってくるかを設定します。(将来対応)
       無しの場合は、予選通過数が適応されます。
       順位リーグ・トーナメントを行う時に使用。

これで全体設定シートが出来ました、次回は雛形シートを作っていきます。

ページ移動

  • ページ
  • 1
  • 2
  • 3

ユーティリティ

新着コメント

Re:2017ふれまにっ杯募集
2017/01/30 from tatsuru3284
Re:ついに
2016/03/18 from redinpules.stt.TV
Re:ついに
2016/03/17 from Tatsuru
Re:ついに
2016/03/17 from redinpules.stt.TV
Re:県オープンの余韻
2016/02/18 from Tatsuru

過去ログ

Feed