【GAS】ReferenceErrorの原因と対処法|not defined を解決する方法

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:88行目で発生

まずは行番号を確認しましょう。

修正方法① 関数名を確認する

関数名の入力ミスはよくあります。

例えば、

sendMail();

と書いたつもりが、

sendemail();

になっている場合があります。

スペルが一致しているか確認しましょう。

修正方法② 関数を作成する

使用したい関数が存在しない場合は作成します。

例えば、

function notExistFunction() {
  Logger.log("テスト");
}

を追加すると実行できます。

修正方法③ 変数名を確認する

ReferenceErrorは変数でも発生します。

例えば、

Logger.log(total);

と書いていて、

var totalPrice = 100;

しか存在しない場合はエラーになります。

変数名が一致しているか確認しましょう。

よくあるトラブル

コードをコピペしたのにエラーになる

原因:一部の関数がコピーされていない

解決方法:コード全体を確認する

関数名は合っているのにエラーになる

原因:大文字・小文字が異なる

解決方法:スペルを確認する

行番号が分からない

原因:実行ログを確認していない

解決方法:エラーメッセージの行番号を確認する

関連するGAS記事

GASのマクロ名を確認する方法

GASでよくあるエラーと対処法まとめ

まとめ

ReferenceErrorは存在しない関数や変数を使用したときに発生します。

まずはエラーメッセージの行番号を確認しましょう。

関数名や変数名の入力ミスを修正すると解決できる場合がほとんどです。

コメント