【GAS】TypeErrorの原因と対処法|Cannot read properties of null を解決する方法

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データが存在しない
getRangegetRange実行時に発生

まずはエラーが発生した行を確認しましょう。

修正方法① シート名を確認する

最も多い原因です。

例えば、

getSheetByName("売上")

と書いていても、

実際のシート名が

売上表

なら取得できません。

シート名が完全一致しているか確認しましょう。

修正方法② シートが存在するか確認する

対象のシートが削除されている場合もあります。

スプレッドシート下部のタブを確認しましょう。

修正方法③ 取得したデータを確認する

シートだけでなく、

・フォルダ

・ファイル

・セル

などでも同じエラーが発生します。

取得対象が存在するか確認しましょう。

よくあるトラブル

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

原因:シート名が異なる

解決方法:シート名を確認する

昨日まで動いていたのにエラーになる

原因:シート名変更や削除

解決方法:対象シートを確認する

エラー行が分からない

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

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

関連するGAS記事

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

▶ GASの画面の見方

まとめ

TypeErrorは存在しないデータを操作したときに発生します。

まずはシート名や取得対象が存在するか確認しましょう。

特にシート名の入力ミスは初心者によくある原因です。

コメント