回答編集履歴

3

修正

2025/01/12 08:06

投稿

kotori_a
kotori_a

スコア874

test CHANGED
@@ -9,10 +9,20 @@
9
9
  function sendConditionalEmails() {
10
10
  const spreadsheet = SpreadsheetApp.getActive();
11
11
 
12
+ // --------以下は削除---------
13
+ // const timeSheet = spreadsheet.getSheetByName("time");
14
+ // timeシートからデータを取得
15
+ //const timeSheet = spreadsheet.getSheetByName("time");
16
+ //const month = timeSheet.getRange("B4").getValue();
17
+ //const day = timeSheet.getRange("C4").getValue();
18
+ //const hour = timeSheet.getRange("D4").getValue();
19
+ //const minute = timeSheet.getRange("E4").getValue();
20
+ // -----------削除ここまで----------
21
+
22
+
12
23
  // 念のためFlushする
13
24
  SpreadsheetApp.flush();
14
25
 
15
- // const timeSheet = spreadsheet.getSheetByName("time");
16
26
  // スクリプトで直接、日付時刻を取得する。
17
27
  const [month, day, hour, minute] = Utilities.formatDate(new Date(), 'Asia/Tokyo','MM,dd,HH,mm').split(',').map(e=>parseInt(e));
18
28
  // 変数の値を確認

2

 

2025/01/12 08:02

投稿

kotori_a
kotori_a

スコア874

test CHANGED
@@ -1,5 +1,5 @@
1
1
  自分の環境では正常に動きましたが、ネットを検索したところ、たまにスクリプトが読み取るシート内容が更新されていないというバグが発生することがあるみたいです。
2
- (Spreadsheet.flush() を使っても更新されないとのこと)
2
+ (SpreadsheetApp.flush() を使っても更新されないとのこと)
3
3
 
4
4
  下記のように、シートから読み取るのではなく、Date()関数を使って、スクリプト内で直接、日付時刻を取得すれば解決すると思います。
5
5
 

1

 

2025/01/12 08:01

投稿

kotori_a
kotori_a

スコア874

test CHANGED
@@ -1,4 +1,4 @@
1
- 自分の環境では正常に動きましたが、ネットを検索すいたところ、たまにスクリプトが読み取るシート内容が更新されないバグが発生することがあるみたいです。
1
+ 自分の環境では正常に動きましたが、ネットを検索たところ、たまにスクリプトが読み取るシート内容が更新されていないというバグが発生することがあるみたいです。
2
2
  (Spreadsheet.flush() を使っても更新されないとのこと)
3
3
 
4
4
  下記のように、シートから読み取るのではなく、Date()関数を使って、スクリプト内で直接、日付時刻を取得すれば解決すると思います。