第10章 トラブルシューティング#
この章の概要
- 対象:困ったことが起きたすべての方(いつでも開いてよい章です)
- 所要時間の目安:症状に応じて5〜10分
- この章で学ぶこと:よくあるトラブルの原因と対処法、このシステムの仕様上の制限
運用中に起こりやすい症状と、その原因・対処法を、Q&A形式でまとめました。困ったときは、まずこの章を確認してください。あわせて、このシステムを使ううえで、あらかじめ知っておきたい仕様上の制限もまとめています。
10.0 まず最初に確認すること#
トラブルが起きたとき、細かい症状を調べる前に、次の3点を確認すると、原因の多くが早期に見つかります。
- 「設定」「スタッフ」「賞一覧」シートの入力内容に、抜け漏れや誤字はないか(第4章)
- Google Driveの画像は、「リンクを知っている全員」の共有設定になっているか(第3章3.5節)
- プログラムファイルを修正した場合、再デプロイを行ったか(第6章6.6節)
多くのトラブルは、この3つのいずれかに原因があります。以下のQ&Aでも、この3点を繰り返し確認するよう案内しています。
図解提案(今後のイラスト化候補)
図解提案:この章全体の使い方として、「症状が起きた→10.0の3点を確認→当てはまる症状のQ&Aを探す→それでも解決しない場合は10.7へ」という流れを、フローチャートの形で章の冒頭に配置すると、読者が迷わずに該当箇所へたどり着けます。
エラーメッセージの読み方(怖がらなくて大丈夫です)#
画面に赤い文字や、見慣れない英単語の混じったメッセージが表示されると、驚いてしまうかもしれません。しかし、多くの場合、エラーメッセージは「何が悪いのか」をそのまま教えてくれている、いわば道しるべです。
用語ミニ解説:Exception(エクセプション)
エラーメッセージの中に「Exception」という英単語が出てくることがあります。これは日本語で「例外」という意味で、プログラムが「想定外の状況にぶつかった」ことを示す、Apps Script共通の表示です。この単語自体に対処する必要はなく、その後ろに続く日本語または英語の説明文(例:「権限がありません」「スプレッドシートが見つかりません」)を読めば、原因のヒントがわかります。
ヒント
エラーメッセージが出たら、慌てずにまず「その文章をそのまま」メモやスクリーンショットに残しておきましょう。10.7節で説明するとおり、専門家に相談する際にもそのまま伝えられる情報になります。
10.1 アプリ全体に関するトラブル#
❓ アプリを開くとエラー画面になる
- 「設定」シートの必須項目(投票開始・投票終了・管理者パスワード)が未入力になっている可能性があります。第4章4.5節を確認し、入力し直してください
- スプレッドシートIDの設定が間違っている可能性があります。第5章5.8節の手順で、
Code.gsのSPREADSHEET_IDを確認してください
❓ 「投票開始日が終了日より後になっています」というエラーが出る
- 「設定」シートの「投票開始」と「投票終了」の日付を見直し、開始日が終了日より前(または同じ日)になるように修正してください
❓ 画面が真っ白のまま何も表示されない
- ブラウザの読み込みが途中で止まっている可能性があります。ページを再読み込み(更新)してみてください
- それでも改善しない場合は、デプロイが正しく完了しているか、第6章の手順を見直してください
- 以前に開いた古い画面の情報が、ブラウザに一時的に残ってしまっていることがあります(これを「キャッシュ」と呼びます)。ブラウザの設定から「閲覧履歴データの削除」または「キャッシュの削除」を行い、ページを開き直すと改善する場合があります
10.2 投票に関するトラブル#
❓ 候補者一覧に人が表示されない
- 「スタッフ」シートのB列「有効」が
TRUEになっているか確認してください(第4章4.6節) - 名前(A列)が空欄になっていないか確認してください
❓ 投票しようとすると「既に投票済みです」と出る
- 同一年度内で、すでに1度投票済みの状態です。仕様どおりの正常な動作です
- 年度をまたいで再投票させたい場合は、「設定」シートの投票開始日を新年度の日付に更新してください(第7章7.3節)
- 誤操作で投票してしまった、というお問い合わせの場合は、第7章7.2節「投票ミスへの対応」を参照してください
❓ 「現在は投票できません」と表示される
- 「設定」シートの投票期間外である可能性が高いです。投票開始日・終了日を確認してください(第4章4.5節)
❓ 候補者を選んでもコメント欄が出てこない
- カードをタップして選択状態にすると、コメント欄が展開される仕様です。カードがきちんと選択状態(背景色が変わるなど)になっているか確認してください
❓ 「次へ」ボタンが押せない
- 選択人数が「設定」シートの最大人数を超えている、または1人も選んでいない可能性があります。案内メッセージを確認し、選択内容を調整してください
10.3 画像に関するトラブル#
❓ 画像が表示されない/読み込みエラーになる
- Google Drive側の共有設定が「リンクを知っている全員」になっているか確認してください(第3章3.5節)
- URL、またはファイルIDの入力が正しいか、「設定」シートの該当セルを確認してください(第4章4.5節)
- 画像のファイル形式が
jpg・jpeg・pngになっているか確認してください - コピーしたURLの前後に、余分なスペースや改行が入っていないか確認してください
❓ ホーム画面の表示が遅い
- ホーム写真4枚を毎回Google Driveから取得しているため、画像の枚数や容量が多いほど時間がかかります。画像を圧縮・縮小することで改善する場合があります(第3章3.8節)
10.4 管理者機能に関するトラブル#
❓ 管理者ログインができない
- パスワードの入力ミス、または「設定」シートの管理者パスワードと一致していない可能性があります。全角・半角、大文字・小文字も含めて確認してください
❓ 管理画面がいつのまにか使えなくなっている
- ログインからおよそ6時間、操作がない状態が続くと自動的にログアウトされる仕様です。再度ログインしてください(第8章8.2節)
❓ 画面を再読み込みしたらログアウトされていた
- 管理者のログイン状態は、ブラウザを開いている間だけ保持される仕様であり、再読み込みで失われるのは正常な動作です
10.5 データ出力に関するトラブル#
❓ Excel/CSV出力でエラーになる
- 一時的な通信エラーの可能性があります。時間をおいて、再度ボタンを押してください
- 繰り返し失敗する場合は、Google側の権限(スプレッドシートの作成・Drive操作の権限)が許可されているか確認してください。Apps Scriptエディタから、いずれかの機能(
testConnectionなど)を実行し、権限の承認画面が出た場合は改めて許可してください(第5章5.9節)
❓ 出力に時間がかかる
- 出力のたびに、一時的なスプレッドシートの作成・整形・削除という処理が行われるため、数秒〜十数秒程度かかることがあります。仕様どおりの動作ですので、画面を閉じずにお待ちください
10.6 コードを修正したのに反映されないとき#
❓ Apps Scriptエディタで Code.gs などを修正したのに、実際の画面(Webアプリ)に反映されない
- スプレッドシートの中身の変更(設定・スタッフ・賞一覧)とは異なり、プログラムファイル自体を修正した場合は、必ず再デプロイが必要です。第6章6.6節の手順で、新しいバージョンとしてデプロイし直してください
10.7 それでも解決しないとき#
このQ&Aで解決しない場合は、次の情報を整理したうえで、システムに詳しい担当者(開発担当者やIT担当)に相談してください。
- どの画面で、どんな操作をしたときに、何が起きたか(エラーメッセージがあれば、その文言もそのまま控えておくとよい)
- 使用している端末(スマートフォン/パソコン)とブラウザの種類
- 「設定」「スタッフ」「賞一覧」の各シートの、関連する部分のスクリーンショット
ヒント
Code.gs には、動作確認用の testConnection() という機能があらかじめ用意されています。Apps Scriptエディタから実行すると、スタッフ数・賞数・最大人数・投票期間の状況などがログに出力されるため、原因の切り分けに役立ちます(第5章5.9節参照)。
図解提案(今後のイラスト化候補)
図解提案:「相談する前に準備しておくとよい情報」を、問診票のようなチェックリスト形式のイラストにすると、相談先とのやり取りがスムーズになります(病院の初診受付票をイメージするとわかりやすいです)。
10.8 知っておきたい制限事項#
このシステムを安心して運用していただくために、あらかじめ知っておくとよい仕様上の特徴・制限をまとめます。いずれも不具合ではなく、現状の「仕様」です。運用ルールを決める際の参考にしてください。
賞ごとに投票可能人数を変えることはできない#
「賞一覧」シートのC列「最大人数」に数字を入力しても、実際の投票制限には使われません。すべての賞に共通して、「設定」シートの「最大人数」の1つの値が適用されます(第4章4.7節)。賞ごとに人数の上限を変えたい場合は、プログラムの改修が必要です。
投票者本人の個別認証はない#
このシステムには、パスワードや個人コードによる投票者本人の認証機能はありません。名前をリストから選ぶだけで本人確認とする、性善説に基づいた設計です。厳密な本人確認が必要な運用には、別途、運用ルールの徹底をご検討ください(第7章7.1節)。
管理者ログインは端末・ブラウザに保存されない#
管理者としてログインした状態は、ブラウザを開いている間のみ有効です。ページを閉じたり、再読み込みしたりするたびに、再度ログインが必要になります(第8章8.2節)。これは、管理画面への不正アクセスを防ぐための安全設計でもあります。
ランキングの正式な保存には手動操作が必要#
管理者ダッシュボードで確認できるランキングは、その場で計算される速報値であり、自動的にシートへ保存されるわけではありません。正式な記録として残すには、createRanking() の手動実行が必要です(第7章7.3節)。
画像設定が多いほど表示が遅くなる#
ホーム写真4枚・完了写真候補・職種アイコン3枚は、いずれもアクセスのたびにサーバー側でGoogle Driveから取得され、データに変換されて画面に表示されます。設定する画像の枚数や、1枚あたりの容量が大きいほど、表示速度に影響します(第3章3.8節)。
試用版表示について#
このマニュアルが前提としているファイル一式には、画面上部と投票開始カードに「【試用版】こちらの投票内容は本番には反映されません」という注意書きが常時表示される仕組みが組み込まれています。本番運用の際には、この表示の扱いを判断する必要があります(第6章6.8節)。
4月始まり以外の年度で運用したい場合#
第1章1.8節で触れたとおり、このシステムは4月〜翌年3月を1つの年度として扱う設計になっています。1月始まりなど、別の区切りで運用したい場合は、プログラムの改修が必要です。
1つのスプレッドシートに固定して接続する設計#
このシステムは、Code.gs 内の SPREADSHEET_ID という1つの値によって、特定の1つのスプレッドシートに固定的に接続する設計です。複数の医院や部署で同じプログラムを使い分けたい場合は、医院(部署)ごとに別々のApps Scriptプロジェクトとスプレッドシートを用意する必要があります。
ヒント
他の医院に同じ仕組みを展開する場合は、第2〜6章の手順を、その医院用のGoogleアカウント・スプレッドシート・Apps Scriptプロジェクトとして、一から繰り返すことになります。1つのプロジェクトを複数の医院で共有することはできません。
投票データの修正はスプレッドシートの直接編集が必要#
投票者が誤った内容で送信してしまった場合、システムの画面上からやり直す機能はありません。管理者が「投票結果」シートを直接編集して対応する必要があります(第7章7.2節)。この操作には注意が必要なため、事前にバックアップを取る習慣をつけることをおすすめします(第9章)。
10.9 この章のまとめ#
- 症状ごとに、まず「設定」「スタッフ」「賞一覧」シートの入力内容を疑う
- 画像トラブルの多くは、Google Driveの共有設定(リンクを知っている全員)の見落としが原因
- 管理者機能の挙動(6時間での自動ログアウトなど)は仕様であり、故障ではない
- コード自体を修正した場合は、必ず再デプロイが必要
- このシステムは専門知識がなくても運用できるよう工夫されている一方、賞ごとの人数設定不可、本人認証なしなど、いくつかの仕様上の制限がある。事前に理解したうえで運用ルールを決めておくと安心
理解度チェック#
- [ ] トラブルが起きたとき、最初に確認すべき3点は何ですか?(10.0節)
- [ ] 画像が表示されないとき、最も可能性が高い原因は何ですか?(10.3節)
- [ ] このシステムに「投票者本人の個別認証」がないことは、不具合ですか、仕様ですか?(10.8節)
これで、院内表彰システム導入マニュアルの本編は終わりです。ご不明な点があれば、この章を読み返すか、システムに詳しい担当者にご相談ください。マニュアル全体の読み方や、章の使い方については README.md もあわせてご覧ください。