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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

463閲覧

GASでGetRangeエラーが表示される

退会済みユーザー

退会済みユーザー

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2017/08/25 14:36

編集2017/08/25 14:52

###前提・実現したいこと
GASでGmailの情報をスプレッドシートに書出し、
特定ワードが入っていれば、スプレッドシート上に目印をつけようとしています。
しかし、以下の通りエラーが出てしまいます。
GetRangeの入れ方を間違えているのかもしれないのですが、
詰まってしまいまして対策を教えて頂けないでしょうか

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

10 は無効な高さです。1 にする必要があります。(行 46、ファイル「MainTask」)

###該当のソースコード

function getMail() { /* Gmailから特定条件のスレッドを検索しメールを取り出す */ var strTerms = 'xxxxxxxxxx'; //メール検索条件 var numMailMax = 100; var numMail = 10; var myThreads; var myMsgs; var valMsgs; var sheetID = "xxxxxxx"; var spreadsheet = SpreadsheetApp.openById(sheetID); var sheetset = spreadsheet.getSheetByName('Master'); var objLabel = GmailApp.getUserLabelByName("check"); var i = 1; var last = sheetset.getLastRow(); if(i<numMailMax) { valMsgs = []; myThreads = GmailApp.search(strTerms, i, numMail); myMsgs = GmailApp.getMessagesForThreads(myThreads); for(var j = 0;j < myMsgs.length;j++){ valMsgs[j] = []; valMsgs[j][0] = myMsgs[j][0].getFrom(); valMsgs[j][1] = myMsgs[j][0].getTo(); valMsgs[j][2] = myMsgs[j][0].getDate(); valMsgs[j][3] = myMsgs[j][0].getSubject(); valMsgs[j][4] = myThreads[j].getPermalink(); myThreads[j].addLabel(objLabel); valMsgs[j][5] = myMsgs[j][0].getPlainBody().slice(0,500); var search; search = valMsgs[j][5].indexOf("検索したいワード"); if(search != -1){ valMsgs[j][6] = 1;} //見つかったとき else{ valMsgs[j][6] = 0; } } /* スプレッドシートに出力 */ if(myMsgs.length>0){ sheetset.getRange(last + 1,1,1,7).setValues(valMsgs); } } }

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

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

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

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

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

kei344

2017/08/25 14:46

質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
退会済みユーザー

退会済みユーザー

2017/08/25 14:53

すみません。只今追加しました
guest

回答1

0

ベストアンサー

sheetset.getRange(last + 1,1,1,7).setValues(valMsgs);

ではなく、

sheetset.getRange(last + 1,1,valMsgs.length,7).setValues(valMsgs);

ということではないでしょうか?

投稿2017/08/25 16:34

true

総合スコア440

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

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

退会済みユーザー

退会済みユーザー

2017/08/26 08:36

大変ありがとうございます。 おかげ様で無事に動きました。そう指定すればよかったんですね。 助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問