質問編集履歴

1

該当のソースコード欄にfunction1のコードを追記

2022/08/12 01:36

投稿

donguriko
donguriko

スコア30

test CHANGED
File without changes
test CHANGED
@@ -65,8 +65,74 @@
65
65
 
66
66
  ### 該当のソースコード
67
67
  以下に現コードを全文記載します。
68
+ 8/12 下コードの冒頭にfunction1のコードを追記。
68
69
 
69
70
  ```GAS
71
+
72
+ function createMailData1() {
73
+ const ss = SpreadsheetApp.openById('~省略~');
74
+ const mySheet1 = ss.getSheetByName('元シート');
75
+ const mySheet2 = ss.getSheetByName('メアドシート');
76
+ const mailSheet = ss.getSheetByName('メール文シート');
77
+ const lastRow = mySheet1.getRange(mySheet1.getMaxRows(), 7).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
78
+ console.log('lastRow ' + lastRow); //9が出たら正解
79
+ const targetRows = lastRow - 5
80
+ console.log('targetRows ' + targetRows); //4が出たら正解
81
+
82
+ //▼送信先のメアド
83
+ //「元シート(mySheet1)」のB列~I列までの値を
84
+ //getRange.getValuesで二次元配列(myRange)として取得
85
+ //起点は6行目、3列目(セルB6)
86
+ //getRange(行,列,●行分,▲列分)
87
+ const myRange = mySheet1.getRange(6, 2, targetRows, 8).getValues();
88
+ console.log('myRange ' + myRange);
89
+
90
+ //for ループ
91
+ //行インデックス0スタートで+1ずつ、lastRowまで繰り返し
92
+ for (let i = 0; i < targetRows; i++) {
93
+ let no = myRange[i][0]; // 連番(B列)
94
+ let recipient = myRange[i][6]; // メアド(H列)
95
+ let myFlag1 = myRange[i][7]; // 投稿連絡フラグ(I列)
96
+ console.log('no ' + no);
97
+ console.log('recipient ' + recipient);
98
+ console.log('myFlag1 ' + myFlag1);
99
+
100
+ //投稿連絡フラグ欄(myFlag1)に「済」ありの時は処理スキップ
101
+ if (myFlag1 === "済") {
102
+ continue;
103
+ }
104
+
105
+ //▼メール件名
106
+ //「メール文シート(mySheet2)」のセルC3から取得
107
+ //getRange(行,列)
108
+ const subject1 = mailSheet.getRange(3, 3).getValue();
109
+ console.log('subject1 ' + subject1);
110
+
111
+ //▼メール本文(body1)
112
+ //「メール文シート(mySheet2)」のセルC4から取得
113
+ const body1 = mailSheet.getRange(4, 3).getValue();
114
+ console.log('body1 ' + body1);
115
+
116
+ const options = {
117
+ name: '自動送信メール',
118
+ noReply: true
119
+ //from:'~省略~'
120
+ };
121
+ GmailApp.sendEmail(recipient,subject1,body1,options);
122
+
123
+ //▼元シート(mySheet1)の「投稿連絡メール」欄(I列)に"済"フラグを追記
124
+ //getRange(行,列,●行分,▲列分)
125
+ const addFlag = mySheet1.getRange(i +6, 9, 1, 1).setValue("済");
126
+
127
+ //▼元シート(mySheet1)の「投稿連絡送信日」欄(J列)に"済"日時を追記
128
+ const timeStamp =new Date();
129
+ console.log(timeStamp);
130
+ mySheet1.getRange(i +6, 10, 1, 1).setValue(timeStamp);
131
+ }
132
+ }
133
+
134
+
135
+
70
136
  function createMailData2() {
71
137
  const ss = SpreadsheetApp.openById('~省略~');
72
138
  const mySheet1 = ss.getSheetByName('元シート');