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

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

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

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

Q&A

解決済

1回答

814閲覧

date と 文字列の比較

marry625

総合スコア6

Google Apps Script

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

0グッド

0クリップ

投稿2020/02/13 01:54

編集2020/02/13 01:57

前提・実現したいこと

本日の1ヶ月後の日付を「mm-dd」形式にフォーマット変換し、
取得した別のスプレッドシートにある日付データと比較して
一致するものだけ処理を実行させたいのですが、
不一致でも処理が実行されてしまいます。

どのように解決すればよいでしょうか。

スプレッドシートの日付データは、「2020-01-01」の形式で入力されており
年の一致は必要ないので、文字列を slice して「01-01」のみ比較しています。

該当のソースコード

function logDoc() {
var mySpreadSheet = SpreadsheetApp.openById("スプレッドシートID");
var mySheet = mySpreadSheet.getSheetByName('シート名');
var rowSheet=mySheet.getDataRange().getLastRow();

/* シートの全ての行について1ヶ月後の日付を判断*/
for(var i=2;i<=rowSheet;i++){
var strTo=mySheet.getRange(i,2).getValue(); //送信先メールアドレス
var strSenderName=mySheet.getRange(i,3).getValue(); //送り主名
var strAtena1=mySheet.getRange(i,9).getValue(); //宛先1
var strDate1=mySheet.getRange(i,10).getDisplayValue(); //記念日1
var str4 = strDate1.slice(5);
var strYoto1=mySheet.getRange(i,11).getValue(); //用途1
var date = new Date();
date.setMonth(date.getMonth() + 1); //1ヶ月後
var MMDD = Utilities.formatDate(date, 'JST', 'MM-dd');

/* 1ヶ月後の日付と記念日が合致したらログ表示*/
if(MMDD == str4);{
Logger.log(strBody);}
}
}

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

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

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

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

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

guest

回答1

0

ベストアンサー

if(MMDD == str4);となっているので、「条件が一致したときには空の文を実行する」という動作となります。このセミコロンが不要です。

投稿2020/02/13 01:58

maisumakun

総合スコア146018

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

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

marry625

2020/02/13 02:12

初歩的でお恥ずかしい・・・ ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問