質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

952閲覧

メールの取得とスプレットシートへの書き込み処理の際に「Cannot read property 'getSheetByName' of null」エラーが発生

masa12

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/04/12 23:25

前提・実現したいこと

GASでJavaScriptを用いて、以下のような処理を作っています。
・Gmail一覧から指定したテキストで検索をかける
・スレッドとメッセージを取得
・取得したものを、指定したスプレッドシートへ書き込む

これらの機能を実装中に、以下のようなエラーが発生し、原因が
分かりません。

どなたか、ご教授、アドバイス、ご指摘などいただけますと幸いです。

発生している問題・エラーメッセージ

TypeError: Cannot read property 'getSheetByName' of null getEmail @ コード.gs:31

該当のソースコード

function getEmail(){ const query = 'テストメール'; const start = 0; const max = 10; const thread = GmailApp.search(query, start, max); const message = GmailApp.getMessagesForThreads(thread); data = []; //空の配列宣言 for(let messages of message){ datum = [ messages[0].getSubject(), //配列0番目(一個目)のメッセージを取得して、件名も取得する messages[0].getPlainBody(), //本文取得 messages[0].getFrom(), //宛先取得 ]; data.push(datum); } colums = ['件名', '本文', 'From']; data.unshift(colums); console.log(data); const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('sだ'); sheet.getRange(3, 3, date.length, data[0].length).setValues(data); }

試したこと

・スプレットシート内のシート名と、コード内で指定しているシート名に差異はありませんでした。
・「 const ss = SpreadsheetApp.getActiveSpreadsheet();」の行までは、しっかり動作しています。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sawa

2021/04/12 23:50

質問にいろいろタグが付いてますが、Google Apps Scriptのタグが適切かと思います。 ちなみにこのスクリプトは、スプレッドシートからエディタを開きて記載されてますか?
masa12

2021/04/13 09:22

コメント、ご指摘有賀が等ございます! 今後、そのようにします。 >このスクリプトは、スプレッドシートからエディタを開きて記載されてますか? 確認してみましたところ、スプレッドシートからではなく、ドライブの新規作成から 作成していました。 スプレッドシートから開いたらエラーが取れました。 ありがとうございます!
sawa

2021/04/15 00:13

その後、他のエラーつまづいてるなら質問修正、もし解決されたのであれば自己解決でクローズとしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問