0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GoogleAppsScriptでカヌースラローム競技の集計ツールを無料で作って運用する

Last updated at Posted at 2022-10-21

カヌースラローム競技のルールと集計

カヌースラローム競技は、日本カヌー連盟のホームページで次のように紹介されています。

【引用】https://www.canoe.or.jp/disciplines/slalom/
流れの上流からもしくは逆に下流から吊るされたゲートを通過する技術とスタート地点からゴールまでにかかった所要時間の両方を競います。スキー競技と同様に1艇ずつスタートし、ゲートに接触したか、非通過のゲートが有るか否かによる減点ポイントと所要時間が計算され順位が争われます。

コースの模型.png

コースは、全長250mから400mであり、そのゲート数は、18ゲートから25ゲートです。
スタート審判、ゴール審判、ゲート審判(各ゲート1名)、区間審判(数ゲートに1名)が必要で、それぞれの審判から審判用紙を回収し、集計しなければなりません。

減点ポイントは、1ポイント=1秒に相当します!

  • ゲート通過 0ポイント
  • ゲートに接触 2ポイント
  • 非通過 50ポイント

昔から、審判補助員が審判用紙を回収したり、トランシーバーで情報伝達したり、自衛隊の通信係が手伝ってくれたり、有線を張り巡らしてデータ通信したりと、集計作業は、とっても大変です。

今では、スマホを誰でも持っていますし、河川でもインターネットに接続できるようになってきましたので、Google Apps Scriptを活用すれば、無料で集計ツールを運用できます(通信費は必要)。集計作業も円滑になりそうです。

機能制限
本集計ツールは、審判の入力と記録、記録されたデータの収集までの機能を提供します。
スタートリストの作成や成績表の作成には、別途、集計システムが必要です。

準備

まずは、集計ツールの準備を行います。

必要なもの

集計ツールは、Google Apps ScriptとExcelで構成されていますので、次のものが必要です。
インターネット環境は運用時にも必要です。

  • Googleアカウント
  • Microsoft Excel
  • Excelがインストールされたパソコン
  • スマホ
  • Webブラウザ
  • インターネット環境

アプリのコピー

次の手順で、ご自身のお手元に集計ツール一式をコピーします。

  1. ソースコードのダウンロード
  2. サンプルExcelファイルの生成
  3. Google スプレッドシートのコピー
  4. Webアプリケーションのデプロイ
  5. 不要シートの削除
  6. Google Cloud API の有効化
  7. ExcelでのウェブアプリURLの入力
  8. Excel集計シートの作成
  9. Excelからスタートリストのアップロード

ソースコードのダウンロード

GitHubからソースコードをダウンロードします(もしくは、クローンしてください)。
リンク: canoe-slalom-judge-scoring-app

  1. リンク先を開く(GitHub)
  2. Codeボタンをクリックし、Download ZIPでファイルをダウンロードする
  3. ダウンロードしたZIP形式ファイルを展開する(解凍する)

展開したフォルダ内には、集計ツールの開発環境とソースコード一式、及び、サンプルExcelファイルのソースコードが含まれています。

サンプルExcelファイルの生成

ダウンロードしたソースコードには、Excel形式ファイル自体は含まれていませんので、次の手順でサンプルExcelファイル(tutrial.xlsm)を生成します。

  1. 展開したフォルダ内の./canoe-slalom-judge-scoring-app/example/excel-vbaフォルダを開く
  2. create_tutorial_workbook.vbsファイルを実行する(ダブルクリック)
  3. 一旦、Excelが起動し、同一フォルダ内にtutrial.xlsmが生成される

【実行時エラーが発生する場合】
一般的に、create_tutorial_workbook.vbsファイルを実行すると、Excelへのアクセスが拒否され、実行時エラーが発生します。
これを解除(許可)するため、Excelを起動し、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」のチェックボックスをオンにしてください。

参考:プログラムから Office VBA プロジェクトへのアクセスが拒否される

Google スプレッドシートのコピー

本集計ツールでは、スマホから審判の記録を入力します。その機能は、GoogleスプレッドシートとApps Scriptとで実装されていますので、それをご自身のGoogleアカウントのGoogleドライブへコピーします。

  1. WebブラウザでGoogleアカウントにログインする
  2. 共有されているデモファイルを開く(デモファイル:demo-canoe-slalom-judge-scoring
  3. メニューからファイル-コピーを作成を選択する
  4. 適当な名前フォルダを入力し、コピーを作成ボタンをクリックする
  5. Google Apps Scriptも付随して、ご自身のGoogleドライブへコピーされる

名前フォルダは、後から自由に変更できます。

ソースコードからのGoogleスプレッドシート構築
ダウンロードしたソースコードには、このGoogleスプレッドシートのApps Scriptのソースコードと開発環境も含まれています。改良したい場合は、ぜひ、開発環境を整え、ご自身で構築してみてください。

Webアプリケーションのデプロイ

コピーしたGoogle スプレッドシートをWebアプリケーションとして機能させるために、デプロイが必要です。

  1. コピーしたGoogleスプレッドシートを開く
  2. メニューの拡張機能-Apps Scriptを選択する
  3. Apps Scriptが開くので、デプロイボタンをクリックし、新しいデプロイを選択する
  4. 表示されたダイアログで、デプロイボタンをクリックし、アクセスを承認ボタンをクリックする
  5. サインインを求められるので、ご自身のGoogleアカウントを選択する
  6. 警告画面Google hasn’t verified this appが表示されるので、Advancedをクリックし、Go to canoe-slalom-judge-scoring (unsafe)をクリックする
  7. アクセス権限を求められるので、Allowボタンをクリックし、許可する
  8. デプロイが完了するとデプロイを更新しました。と表示されるので、ウェブアプリのURLをコピーする
  9. 'ウェブアプリ'のURLをGoogleスプレッドシートの「URL」シートのG1セルに貼り付けておく(base url

これで、ご自身のGoogleドライブ内のGoogleスプレッドシートがWebアプリケーションとして機能するようになりました。「URL」シートの各リンクアドレスにアクセスすると、時間やペナルティの入力ができます。

URL の再確認方法
デプロイで表示された Web AppのURLは、次の手順で再表示することができます。

  1. Googleスプレッドシートで、メニューの拡張機能-Apps Scriptを選択する
  2. Apps Scriptが開くので、デプロイボタンをクリックし、デプロイを管理を選択する
  3. ウェブアプリのURLが表示される(コピーも可能)

不要シートの削除

コピーしたGoogleスプレッドシートには、デモ用に記録されたデータ(シート)もコピーされています。
「URL」シートだけを残して、その他のシートは削除してください。

Google Cloud API の有効化

本集計ツールでは、ExcelファイルからGoogleスプレッドシートにデータをアップロードしたりダウンロードしたりします。
そのため、Google Cloud プロジェクトでの API の有効化が必要です。

APIの有効化 を参照し、有効化してください。
→ APIの有効化: https://cloud.google.com/endpoints/docs/openapi/enable-api?hl=ja#enabling_an_api

ExcelでのウェブアプリURLの入力

サンプルExcelファイル(tutrial.xlsm)から、GoogleスプレッドシートのウェブアプリにアクセスするためにウェブアプリのURLの設定が必要です。次の手順で入力してください。

  1. サンプルExcelファイル(tutrial.xlsm)を開く
  2. メニューの表示-マクロの表示を選択する
  3. マクロからResetWebAppUrlを選択し、実行ボタンでマクロを実行する
  4. 表示されたダイアログボックスに、ウェブアプリのURLを入力する(コピー&ペースト)

入力したURLは、tutrial.xlsm.utf16le.jsonファイルに保存されます。URLを間違えた場合や変更した場合は、再度、本手順を行います。

Excel集計シートの作成

Excel集計シートは、「スタートリスト」と「記録データ」の2つのシートで構成します。
次の手順でレースごとに、2つのExcel集計シートを作成します。

  1. サンプルExcelファイル(tutrial.xlsm)を開く
  2. メニューの表示-マクロの表示を選択する
  3. マクロからNewHeatSheetを選択し、実行ボタンでマクロを実行する
  4. 表示されたダイアログボックスに、レース名称を入力し、OKボタンをクリックする
  5. スタートリストである「RUNNERS(xxxx)」シートと記録データである「RECORDS(xxxx)」シートとが作成される

レース名称
コピーしたデモ用のGoogleスプレッドシートに合わせて、次の4つ分のレース名称のExcel集計シートを作成すると良いでしょう。

  1. final
  2. semi-final
  3. heat-2nd
  4. heat-1st

Excelからスタートリストのアップロード

Googleスプレッドシートにもレース名称に対応したシートを作成するため、サンプルExcelファイル(tutrial.xlsm)で、空のスタートリストをアップロードします。

  1. サンプルExcelファイル(tutrial.xlsm)を開く
  2. スタートリストである「RUNNERS(xxxx)」シートを選択し、表示する
  3. メニューの表示-マクロの表示を選択する
  4. マクロからAppSyncを選択し、実行ボタンでマクロを実行する
  5. 確認ダイアログボックスで、OKボタンをクリックする
  6. Googleスプレッドシートにシートが追加されていることを確認する

この操作をすべてのスタートリストで行ってください。

アップロードできない場合

  • ウェブアプリURLを再度入力しなおしてください。
  • スタートリストである「RUNNERS(xxxx)」シートが選択された状態でマクロを実行してください

データ集計

次の手順で、一連のデータ集計を行います。

  1. スタートリストの入力とアップロード
  2. 審判入力区間の定義とURLの配布
  3. 審判入力
  4. 記録データのダウンロード

スタートリストの入力とアップロード

スタートリストである「RUNNERS(xxxx)」シートをレース毎に入力します。
Bibには、ゼッケン番号を、Tagには、種目を入力し、BibTagとで一意になるようにします(推奨)。
#列は、アップロード時にBibTagとが結合された文字列が自動的に入力されます。この#列を検索キーにVLookUp関数を使って、別シートに印刷用のスタートリストや成績表をデータ参照で作成することを想定しています。

Bibは2行目から順番に詰めて入力してください。Loocked列は、審判入力を読み取り専用にするかどうかを設定できます。Locked列に何か値を入力すると審判入力で読み取り専用になり、アプリから編集できなくなります。

NameTeamRemarksは、任意項目です。ご自由に使ってください。

スタートリストが入力出来たら、次の手順で、Googleスプレッドシートにアップロードしてください。

  1. スタートリストである「RUNNERS(xxxx)」シートを選択し、表示する
  2. メニューの表示-マクロの表示を選択する
  3. マクロからAppSyncを選択し、実行ボタンでマクロを実行する
  4. 確認ダイアログボックスで、OKボタンをクリックする
  5. Googleスプレッドシートにデータがアップロードされていることを確認する

アップロードは、何度でも繰り返すことができます。ただし、アプロード済みのデータを削除することはできませんので、削除したい場合は、Googleスプレッドシートで直接、データを削除してください。

審判入力区間の定義とURLの配布

スタートリストの入力と同時に、審判入力の区間を定義します。

  • スタートタイム入力
  • ゲート審判入力(区間審判)
  • ゴールタイム入力

尚、ゴールタイムとして、所要時間を入力する場合は、スタートタイム入力は、不要です(DNSの入力のみ)。

この区間が決まれば、Googleスプレッドシートの「URL」シートに定義を入力してください(既存の入力例を参考に)。
各審判用のURLが計算表示されますので、これを入力担当者に配布し、スマホから入力します。URLは、2次元バーコード(QR)などにして印刷すると伝えやすいでしょう。

審判入力

各審判の入力担当者は、配布されたURLにアクセスし、データを入力します。

記録データのダウンロード

入力された記録データを記録データである「RECORDS(xxxx)」シートに、都度、ダウンロードします。

  1. 記録データである「RECORDS(xxxx)」シートを選択し、表示する
  2. メニューの表示-マクロの表示を選択する
  3. マクロからAppSyncを選択し、実行ボタンでマクロを実行する
  4. 確認ダイアログボックスで、OKボタンをクリックする
  5. 選択シートに記録データがダウンロードされていることを確認する

これを競技中、繰り返し行います。
ダウンロードした記録データを元にVLookUp関数などを駆使すれば、別シートで、種目別の成績表を作成することができます。

おわりに

無料で利用できるGoogleスプレッドシートを使って、カヌースラローム競技の集計ツールを作成することができました。
カヌースラロームコースにおいてもスマホがあれば、インターネットに誰でも接続できるようになり、これらの技術を活用して、大会運営がより円滑になれば、幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?