前の担当者が作ったスプレッドシートのGASが、ある日、急に動かなくなった。コードを開いても、何が書いてあるのか分からない。コードを触らずに、事務の方が自分で確かめられる所を5つに絞りました。筆者が実際に出したエラーと本物の画面で、上から順に説明します。
先に、やらないこと
中身が分からないうちは「実行」を押さないでください(何が動くか分からないため)。触る前に「ファイル」→「コピーを作成」で控えを取ると安心です(ただし、メールの送信など表の外に届く動きは、コピーでも止まらないことがあります)。
■1. 実行の記録で、エラーの文を見る
1. スプレッドシートの上のメニューで「拡張機能」→「Apps Script」を押します。
2. 左の一覧から「実行数」を押します。
3. 「ステータス」の列で、「失敗しました」と出ている行を探します。
4. その行を押すと、筆者の画面では「Cloud のログ」の下に、赤い行でエラーの文が出ます。
この文は、そのままコピーして保存してください。人に相談する時にも使います。
■2. 承認が切れていないか
承認の画面は、そのGASに「このシートを見たり書いたりしてよいか」の許可を渡す画面です。
承認が切れていると、■1 のエラーの文に「承認」や「権限」という言葉が出ることがあります。確かめるために「実行」を押すのはやめてください。承認が済んでいると、窓は出ずにそのまま動いてしまいます。
もし、次の窓が出たら:
承認が必要です
リクエストされたすべての権限を付与しないと、このアプリは想定どおりに動作しない可能性があります。
[キャンセル] [権限を確認]
前任者のコードで中身が読めない時は、「権限を確認」を押さず、「キャンセル」で閉じてください。見覚えのない権限を渡す前に、詳しい人に相談するのが安全です。
■3. トリガーが生きているか
「毎朝8時に動く」のような自動の動きは、トリガーという設定で動いています。
1. Apps Script の左の並びで、時計の絵の「トリガー」を押します。
2. 動かしたい関数が一覧に残っているかを見ます。
3. 「エラー率」の列で、止まっていないかを見ます。
一覧に見当たらない時は、前任者のアカウントで登録されているのかもしれません。Googleの説明では、別のアカウントが入れたトリガーは、自分のアカウントでは表示できません。
トリガーが失敗しても、画面にエラーは出ません。知らせのメールは、前任者にしか届いていないかもしれません。だから、■1の「実行数」で確かめます。
ここまでで「権限の窓で先へ進めない」「トリガーが前任者のアカウントにありそう」となった時は、無理に進めず、そこで止めて大丈夫です。■1のエラーの文を控えておけば、詳しい人に見せる時にそのまま使えます。相談先の一つとして、記事の最後に筆者の窓口も置いています。
■4. シート名や列名が変わっていないか
コードは、シートのタブの名前や1行目の列名を、文字で探しています。見た目が同じでも、空白や全角・半角が1文字違うと、別の名前になります。
シート名が見つからない時は、「TypeError: Cannot read properties of null (reading 'getRange')」のような文が出ます。■1の2枚目の画像のエラーが、これです。存在しないシート名を指定して、筆者が実際に出しました。
タブの名前と、コードの中で ' や " に囲まれた名前を並べて、一字一句同じかを見てください。
■5. 動かすアカウントに、編集する権限があるか
GASは、動かしたアカウントの権限でシートを触ります。時間で動くトリガーなどは、Googleの説明では、トリガーを作った人のアカウントで実行されます。
スプレッドシートの右上の「共有」で、そのアカウントが「編集者」になっているかを見てください。ほかのスプレッドシートも触るコードなら、そちらも同じように見ます。
ほかの原因(中身を見ないと分からない物)
5つに当てはまらない時は、次のような原因もあります。ここは、コードの中身を見ないと分かりません。
・データの行が増えて、1回の実行の時間などの上限にかかった
・何年も前の古い書き方のまま残っていて、Google側の変更で動かなくなった
それでも分からない時
■1のエラーの文が手元にあれば、原因の見当がつきやすくなります。それでも分からない時や、前任者のコードが読めない時は、ご相談ください。
送っていただく物は2つだけです。■1でコピーしたエラーの文と、いつ頃から止まったか。パスワードや実在の個人情報は伏せてください。購入の前に、ココナラの「無料で見積り相談」で、直せそうかと金額をお答えします。料金は1件3,000円からで、超える場合は作業の前に金額をお伝えします。直した後は、何が原因だったか、次に止まった時どこを見ればよいかを文章でお渡しします。
▼ご相談はこちら
※画面の名前は、Googleの更新で変わることがあります。違う時は、近い名前の項目を探してください。画像は、筆者が試し用のスプレッドシートで再現した画面です。