Google Apps Script(GAS)を実行したときに、
ReferenceError
や
ReferenceError: ○○ is not defined
と表示されて困っていませんか?
ReferenceErrorは、存在しない関数や変数を使用したときに発生するエラーです。
この記事では初心者向けに原因と解決方法を解説します。
この記事でわかること
・ReferenceErrorの意味
・not defined の原因
・エラー行の確認方法
・解決方法
結論
ReferenceErrorが表示された場合は次の3つを確認してください。
・関数名の入力ミス
・変数名の入力ミス
・存在しない名前を呼び出している
まずはエラーメッセージを確認しましょう。
実際のエラー例
次のようなエラーが表示されます。
ReferenceError: notExistFunction is not defined

このエラーは、
notExistFunction という名前が見つかりません
という意味です。
エラーの原因
今回のコードはこちらです。
function testError() {
var a = 10;
var b = 0;
var result = a / b;
notExistFunction();
console.log(result);
}
8行目を見ると、
notExistFunction();
というコードがあります。
しかし、
function notExistFunction() {
}
が存在しません。
そのためエラーになります。
エラーメッセージの見方
実行ログには次のように表示されています。
ReferenceError: notExistFunction is not defined
testError @ コード.gs:8
意味は次の通りです。
| 表示内容 | 意味 |
|---|---|
| ReferenceError | 名前が見つからない |
| notExistFunction | エラーになった名前 |
| is not defined | 定義されていない |
| コード.gs:8 | 8行目で発生 |
まずは行番号を確認しましょう。
修正方法① 関数名を確認する
関数名の入力ミスはよくあります。
例えば、
sendMail();
と書いたつもりが、
sendemail();
になっている場合があります。
スペルが一致しているか確認しましょう。
修正方法② 関数を作成する
使用したい関数が存在しない場合は作成します。
例えば、
function notExistFunction() {
Logger.log("テスト");
}
を追加すると実行できます。
修正方法③ 変数名を確認する
ReferenceErrorは変数でも発生します。
例えば、
Logger.log(total);
と書いていて、
var totalPrice = 100;
しか存在しない場合はエラーになります。
変数名が一致しているか確認しましょう。
よくあるトラブル
コードをコピペしたのにエラーになる
原因:一部の関数がコピーされていない
解決方法:コード全体を確認する
関数名は合っているのにエラーになる
原因:大文字・小文字が異なる
解決方法:スペルを確認する
行番号が分からない
原因:実行ログを確認していない
解決方法:エラーメッセージの行番号を確認する
関連するGAS記事
まとめ
ReferenceErrorは存在しない関数や変数を使用したときに発生します。
まずはエラーメッセージの行番号を確認しましょう。
関数名や変数名の入力ミスを修正すると解決できる場合がほとんどです。


コメント