見出し画像

初心者がつまずくポイント解説「Apps Scriptで出るエラーTOP10」

初心者がつまずくポイント解説「Apps Scriptで出るエラーTOP10」

Google Apps Scriptは、スプレッドシートやGmail、カレンダーを自動化できる強力なツールです。ところが、最初に触れるときに必ずといっていいほど遭遇するのが「エラー」。コード自体はシンプルなのに、実行すると赤字のエラーメッセージに心を折られる…。そんな経験をした方も多いのではないでしょうか。

今回は、Apps Script初心者が特につまずきやすいエラーを10個ピックアップし、それぞれの原因と解決のヒントを「できるだけ噛み砕いて」まとめました。この記事を読みながら「あるある!」と頷きつつ、回避策を身につけてもらえたら嬉しいです。


1. TypeError: Cannot read property ... of null

原因:これは「空っぽの箱から何かを取り出そうとした」ような状態です。たとえば、getRange()で存在しないセルを指定してしまったり、シート自体が見つからないときに起こります。
解決策:まず「その箱(変数やセル)は本当に中身が入っているか?」を確かめましょう。Logger.log()を使うと、今その変数が何を持っているのかを確認できます。


2. ReferenceError: "xxx" is not defined

原因:定義していない変数や関数を呼び出しているときに出ます。多くの場合は「スペルミス」です。sheetとsheteなど、見落としがちです。大文字小文字の違いも別物扱いされます。
解決策:自分で書いた名前をもう一度よく確認してください。初心者の方は「宣言したつもりになっていて実はしていない」ということも多いです。まずはvarやletで宣言しているかをチェックしましょう。


3. Exception: You do not have permission to call ...

原因:Gmailやカレンダーなど、Googleの特定サービスを使うときは「権限」が必要です。まだ承認していないのにコードを実行すると、このエラーが出ます。
解決策:初めてスクリプトを動かすときに出る「承認してください」というポップアップは必ず許可しましょう。もしスキップしてしまった場合は、再度実行すれば再び承認画面が出てきます。


4. Exceeded maximum execution time

原因:Apps Scriptは1回の処理で「最大6分」しか動けません。大量データをループで処理していると、時間切れで止まります。
解決策:処理を小分けにして実行する工夫が必要です。たとえば「1000行を一度に処理する」のではなく「100行ずつ処理して時間をずらす」方法です。時間主導型トリガーを組み合わせれば、分割実行が可能です。


5. Service invoked too many times

原因:Googleのサービスには「回数制限」があります。スプレッドシートを1行ずつ読み取っていると、あっという間に制限超えします。
解決策:getValue()を何回も呼ぶのではなく、getValues()でまとめてデータを取り出すのがコツです。まとめて取り出してまとめて処理すれば、制限にひっかかりにくくなります。


6. Cannot call SpreadsheetApp.getUi() from this context

原因:ユーザーインターフェース(UI)を操作する処理を「自動トリガー」で実行しようとすると出ます。トリガーではUIを開けないからです。
解決策:メニュー追加やポップアップは、必ずユーザーが自分でメニューをクリックするなど「手動で動かす」場合に使いましょう。トリガー実行では使えないと覚えておくと安心です。


7. Missing ; before statement

原因:これは単純に「書き間違い」です。セミコロンやカンマ、カッコが抜けているとエラーになります。
解決策:赤字のエラーが出たら、まずその行の前後を見直しましょう。カンマの打ち忘れや括弧の閉じ忘れは初心者のあるあるです。エディタが赤くハイライトしてくれるので、そのサインを見逃さないようにしましょう。


8. Invalid email: ...

原因:Gmail送信時に宛先アドレスが正しくない場合に出ます。たとえば余計な空白が混じっていたり、全角の@やドットを使ってしまったときです。
解決策:送信先のメールアドレスを一度コピペして、余計な空白や全角文字がないかを確かめましょう。初心者は「目では正しいと思っていても実は違う」ということが多いです。


9. Script function not found: doGet

原因:Webアプリとして公開するときに必要な入口関数(doGetやdoPost)が存在しない場合に出ます。
解決策:Webアプリを公開する場合は必ずdoGet(e)という関数を作りましょう。これがないとアプリが「入り口がない!」と怒って止まってしまいます。


10. Exception: Request failed for ... returned code 403

原因:外部サービスやAPIを呼び出すときに、アクセス権限が不足しているか、禁止されているURLにアクセスした場合に出ます。
解決策:APIキーが正しく設定されているか、アクセス制限がかかっていないかを確認してください。URLの打ち間違いや、httpsとhttpを間違えるケースも意外と多いです。


まとめ

Apps Scriptは「慣れると便利」な反面、最初は赤エラーに苦しめられるものです。大切なのは、エラーメッセージを敵ではなく“ヒント”と捉えること。難しそうに見えても、エラーメッセージは「どこがおかしいのか」を教えてくれる先生のような存在です。

つまずくたびに「Loggerで中身を確認する」習慣をつければ、次第に自分で原因を特定できるようになります。焦らずに一歩ずつ。エラーと仲良くなったとき、Apps Scriptはあなたの心強い味方になるはずです。

いいなと思ったら応援しよう!