【GAS】Cannot find functionの原因と対処法|関数が見つからない時の解決方法

Google Apps Script(GAS)を実行したときに、

Cannot find function

ReferenceError: sendemail is not defined

と表示されて困っていませんか?

このエラーは、存在しない関数を実行しようとしたときに発生します。

この記事では初心者向けに原因と解決方法を解説します。

この記事でわかること

・Cannot find function の意味

・エラーの原因

・行番号の見方

・解決方法

結論

Cannot find function が表示された場合は次の3つを確認してください。

・関数名の入力ミス

・大文字と小文字の違い

・関数が存在するか

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

実際のエラー例

次のコードを実行してください。

function testError() {
  sendemail();
}

実行すると次のようなエラーが表示されます。

ReferenceError: sendemail is not defined

このエラーは、

sendemail という関数が見つかりません

という意味です。

エラーの原因

今回のコードはこちらです。

function testError() {
  sendemail();
}

このコードでは、

sendemail();

を実行しています。

しかし、

function sendemail() {

}

が存在しません。

そのためエラーになります。

エラーメッセージの見方

実行ログには次のように表示されます。

ReferenceError: sendemail is not defined

コード.gs:2

意味は次の通りです。

表示内容意味
ReferenceError名前が見つからない
sendemailエラーになった関数名
is not defined定義されていない
コード.gs:22行目で発生

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

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

最も多い原因です。

例えば、

sendMail();

が正しい関数なのに、

sendemail();

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

スペルを確認しましょう。

修正方法② 大文字と小文字を確認する

GASでは大文字と小文字を区別します。

例えば、

sendMail();

sendmail();

は別の名前です。

完全に一致しているか確認しましょう。

修正方法③ 関数が存在するか確認する

関数が存在しない場合は作成する必要があります。

例えば、

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

を追加するとエラーは解消されます。

関数名を確認する方法

関数名は次の部分です。

function sendMail() {

}

この場合の関数名は、

sendMail

です。

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

よくあるトラブル

コードをコピペしたらエラーになった

原因:関数のコピー漏れ

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

関数名は合っているように見える

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

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

実行する関数を間違えた

原因:関数選択欄の設定ミス

解決方法:実行する関数を確認する

関連するGAS記事

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

▶ GASのエラー確認方法

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

まとめ

Cannot find function は関数が見つからないときに発生します。

まずは関数名とスペルを確認しましょう。

大文字と小文字の違いもよくある原因です。

関数名を正しく修正すると解決できます。

コメント