前提・実現したいこと
初心者です。
Google Apps Scriptにて、Gメールからスプレッドシートへ自動入力するためのスクリプトを作成中です。
スプレッドシートに入力される際に、特定の列(例えばA列など)の最終行を取得して、その次の行から入力されるようにしたいです。
現状のコードですと、実行した際にシート全体のセル中で一番下に入力されてる文字を取得して、その次の行にメール内容が入力されます。
そうではなく、特定の列を指定して、その列の最終行の次の行に入力されるようにしたいです。
具体的に例えば、、、C列は一番最後に文字が入ってるセルが10行目、A列は一番最後に文字が入ってるセルが5行目というシートでこのスクリプトを実行した場合、A列の最終行のみを取得するように設定して、その次の6行目に入力されるという結果にしたいです。(現状のコードで実行すると、11行目に入力されます。)
色々調べたのですが、いまいち解決策に辿りつけませんでした。。。
どなたか、ご教授頂けますと幸いです。よろしくお願いいたします。
該当のソースコード
function searchContactMail() {
/* Gmailから特定条件のスレッドを検索しメールを取り出す */
var strTerms = '()';
var myThreads = GmailApp.search(strTerms, 0, 5); //条件にマッチしたスレッドを取得
var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する
var valMsgs = [];
/* 各メールから日時、送信元、件名、内容を取り出す*/
for(var i = 0;i < myMsgs.length;i++){
valMsgs[i] = []; valMsgs[i][0] = myMsgs[i][0].getDate(); valMsgs[i][1] = myMsgs[i][0].getFrom(); valMsgs[i][3] = myMsgs[i][0].getSubject(); valMsgs[i][2] = myThreads[i].getPermalink();
}
/* スプレッドシートに出力 */
var sheet = SpreadsheetApp.getActive().getSheetByName('test');
sheet.getRange(sheet.getLastRow()+1, 1, i, 4).setValues(valMsgs); //シートに貼り付け
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/19 02:48
退会済みユーザー
2018/02/19 03:37
2018/02/19 06:09 編集
2018/02/19 08:09 編集