Google Apps Script (GAS) は、スクリプトを作成・実行する際には、さまざまなエラーに直面します。特にGAS初心者にとっては、エラーメッセージの意味がよくわからないという方も多いでしょう。
この記事では、GASでよく見られるエラーとその原因、対策について詳しく解説します。
- ReferenceError: "xxx" is not defined.
- TypeError: Cannot call method "xxx" of null.
- Exception: Service using too much computer time for one day.
- Script has too many trigger executions in a given time period for this Google user account.
- Service invoked too many times for one day: email.
- Exceeded maximum execution time
- Unexpected error occurred
- まとめ
ReferenceError: "xxx" is not defined.

【日本語訳】ReferenceError: “xxx” は定義されていません
スクリプト内で定義されていない変数や関数を参照しようとしたときに発生します。名前のとおり「not defined(定義なし)」ですね。変数名や関数名のスペルミスや、スコープの問題でこのエラーが発生することが多いです。
function myFunction() {
var taunki = 5;
Logger.log(tanuki); // 綴りが間違っています。
}
これは、スクリプト内で定義されていない変数や関数を参照しようとしたときに発生するので、変数名や関数名のスペルミスが正しいかなどを確認してください。
TypeError: Cannot call method "xxx" of null.

【日本語訳】TypeError: null のメソッド “xxx” を呼び出すことはできません
null
または undefined
の値に対してメソッドを呼び出そうとしたときに発生します。多くの場合、対象のオブジェクトが期待通りに取得できていないことが原因です。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
sheet.getRange('A1').setValue('Hello'); // 'Sheet1' が存在しない場合
}
上記のスクリプトでは、getSheetByName('Sheet1')
が null
を返すと、sheet.getRange('A1')
の呼び出しができず、「TypeError: Cannot call method “getRange” of null.」というエラーが発生します。これは、指定したシート名がスプレッドシート内に存在しないためです。
指定したオブジェクトが存在するか(スペルミスでも取得不可)を確認してください。
Exception: Service using too much computer time for one day.

【日本語訳】例外: 1日に使用できる計算時間を超えています
これは、GASの実行時間の制限を超えたときに発生します。Googleの各種サービス(例: SpreadsheetApp, GmailAppなど)には、1日の実行時間などが設定されており、これを超えるとこのエラーが発生します。
スクリプトを効率化することで、実行時間を短縮します。無駄なループを避けたり、バッチ処理を行いGASの実行時間を短縮してください。
Script has too many trigger executions in a given time period for this Google user account.

【日本語訳】スクリプトのトリガー実行回数が短時間で多すぎます
トリガーの実行回数が短期間で過剰になった場合に発生します。例えば、onEdit
トリガーが頻繁に発生すると、このエラーが発生することがあります。
トリガーの使用を最適化し、必要以上に頻繁に実行されないようにします。例えば、条件を追加してトリガーの実行を制限することで実行回数を減らすことができます。
Service invoked too many times for one day: email.

【日本語訳】サービス: 1日に呼び出しすぎです(メール)
これは、GmailAppのサービスの使用量が1日の制限を超えたときに発生します。例えば、Googleの無料アカウントの1日のメール送信条件は100通ですが、それ以上のメールを送信しようとすると、このエラーが発生します。
このエラーを解消するには、スクリプトの実行回数を減らす必要があります。例えば、メール送信をバッチ処理に分けて、一度に送信するメールの数を減らします。
Exceeded maximum execution time

【日本語訳】最大実行時間を超えました
GASのスクリプトは、一回の実行で最大6分の実行時間が制限されています。この制限を超えると、このエラーが発生します。
スクリプトを分割して実行時間を短縮します。例えば、大きなデータ処理を複数の小さなバッチに分割し、各バッチを別々の時間に実行するようにします。
Unexpected error occurred

【日本語訳】予期しないエラーが発生しました
このエラーは、予期しない問題が発生した場合に表示されます。具体的な原因はさまざまで、ネットワークの問題やGoogleサーバーの一時的な障害が含まれます。時間を置いてからスクリプトを実行してください。
まとめ
Google Apps Script (GAS) を使う際によく見られるエラーとその原因、対策について解説しました。エラーメッセージは、スクリプトのどこに問題があるかを示す重要な手がかりです。
特に初心者の方は、この記事を参考にエラーの原因を把握し、GASをより効果的に活用していただければ幸いです。
コメント