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:2 | 2行目で発生 |
まずは行番号を確認しましょう。
修正方法① 関数名を確認する
最も多い原因です。
例えば、
sendMail();
が正しい関数なのに、
sendemail();
となっている場合があります。
スペルを確認しましょう。
修正方法② 大文字と小文字を確認する
GASでは大文字と小文字を区別します。
例えば、
sendMail();
と
sendmail();
は別の名前です。
完全に一致しているか確認しましょう。
修正方法③ 関数が存在するか確認する
関数が存在しない場合は作成する必要があります。
例えば、
function sendemail() {
Logger.log("テスト");
}
を追加するとエラーは解消されます。
関数名を確認する方法
関数名は次の部分です。
function sendMail() {
}
この場合の関数名は、
sendMail
です。
よくあるトラブル
コードをコピペしたらエラーになった
原因:関数のコピー漏れ
解決方法:コード全体を確認する
関数名は合っているように見える
原因:大文字と小文字が異なる
解決方法:スペルを確認する
実行する関数を間違えた
原因:関数選択欄の設定ミス
解決方法:実行する関数を確認する
関連するGAS記事
▶ GASのエラー確認方法
まとめ
Cannot find function は関数が見つからないときに発生します。
まずは関数名とスペルを確認しましょう。
大文字と小文字の違いもよくある原因です。
関数名を正しく修正すると解決できます。


コメント