Google Apps Script(GAS)を実行したときに、
TypeError
や
TypeError: Cannot read properties of null
と表示されて困っていませんか?
TypeErrorは、存在しないデータを操作しようとしたときに発生するエラーです。
この記事では初心者向けに原因と解決方法を解説します。
この記事でわかること
・TypeErrorの意味
・Cannot read properties of null の原因
・エラー行の確認方法
・解決方法
結論
TypeErrorが表示された場合は次の3つを確認してください。
・シート名が正しいか
・セル範囲が正しいか
・取得したデータが存在するか
まずはエラーメッセージを確認しましょう。
実際のエラー例
次のようなエラーが表示されます。
TypeError: Cannot read properties of null

このエラーは、
存在しないデータを操作しようとしています
という意味です。
エラーの原因
今回のコードはこちらです。
function sheetError() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("存在しないシート");
sheet.getRange("A1").setValue("テスト");
}
【画像挿入】
このコードでは、
getSheetByName("存在しないシート")
を実行しています。
しかし、
存在しないシート
という名前のシートがありません。
そのため、
var sheet
には何も取得されません。
その状態で、
sheet.getRange("A1")
を実行するとTypeErrorになります。
エラーメッセージの見方
例えば、
TypeError: Cannot read properties of null (reading 'getRange')
と表示された場合、
意味は次の通りです。
| 表示内容 | 意味 |
|---|---|
| TypeError | データの取得に失敗 |
| null | データが存在しない |
| getRange | getRange実行時に発生 |
まずはエラーが発生した行を確認しましょう。
修正方法① シート名を確認する
最も多い原因です。
例えば、
getSheetByName("売上")
と書いていても、
実際のシート名が
売上表
なら取得できません。
シート名が完全一致しているか確認しましょう。
修正方法② シートが存在するか確認する
対象のシートが削除されている場合もあります。
スプレッドシート下部のタブを確認しましょう。
修正方法③ 取得したデータを確認する
シートだけでなく、
・フォルダ
・ファイル
・セル
などでも同じエラーが発生します。
取得対象が存在するか確認しましょう。
よくあるトラブル
コードをコピペしたのにエラーになる
原因:シート名が異なる
解決方法:シート名を確認する
昨日まで動いていたのにエラーになる
原因:シート名変更や削除
解決方法:対象シートを確認する
エラー行が分からない
原因:実行ログを確認していない
解決方法:エラーメッセージの行番号を確認する
関連するGAS記事
▶ GASの画面の見方
まとめ
TypeErrorは存在しないデータを操作したときに発生します。
まずはシート名や取得対象が存在するか確認しましょう。
特にシート名の入力ミスは初心者によくある原因です。


コメント