前提
スプレッドシートで、G,H列のどちらかデータが更新されたら、I列に更新日が自動で入るというのをGASで行いたいと考えています。
(例)セルG11またはH11のデータが更新されたら、セルI11に更新日が自動で入る。
トリガーは設定済です。
発生している問題・エラーメッセージ
1シートだけであれば作成できたのですが、複数シートの場合は全てのシートに反映されてしまいます。
単一シートごとに反映できるようにしたいのですがやり方がわからず、質問させていただきました。ご教示頂ければ幸いです。
シートが10枚あり、シート2のセルG11を更新すると、セルI11に日付が入ります。しかし、シート1のセルI11にも日付が入ってしまう。
該当のソースコード
GoogleAppsScript
1```/*指定列に日付を自動入力するスクリプト*/ 2 3function inputDate() { 4 var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得 5 var sheet = ss.getSheetByName('1'); //対象のシート名を選択( ()部分にシート名記載) 6 var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得 7 var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得 8 var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得 9 var updateRange = sheet.getRange('I' + currentRow); //どの列に更新日時を挿入したいか。この場合はI列 10 Logger.log(updateRange); //更新日の記入 11 if(currentRow > 10 && currentCol == 7) { //11行目以降かつG列の変更を参照とする 12 if(currentCell) { 13 updateRange.setValue(new Date()); 14 } 15 } 16 var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得 17 var sheet = ss.getSheetByName('1'); //対象のシート名を選択( ()部分にシート名記載) 18 var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得 19 var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得 20 var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得 21 var updateRange = sheet.getRange('I' + currentRow); //どの列に更新日時を挿入したいか。この場合はI列 22 Logger.log(updateRange); //更新日の記入 23 if(currentRow > 10 && currentCol == 8) { //11行目以降かつH列の変更を参照とする 24 if(currentCell) { 25 updateRange.setValue(new Date()); 26 } 27 } 28} 29{ 30 var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得 31 var sheet = ss.getSheetByName('2'); //対象のシート名を選択( ()部分にシート名記載) 32 var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得 33 var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得 34 var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得 35 var updateRange = sheet.getRange('I' + currentRow); //どの列に更新日時を挿入したいか。この場合はI列 36 Logger.log(updateRange); //更新日の記入 37 if(currentRow > 10 && currentCol == 7) { //11行目以降かつG列の変更を参照とする 38 if(currentCell) { 39 updateRange.setValue(new Date()); 40 } 41 } 42 var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得 43 var sheet = ss.getSheetByName('2'); //対象のシート名を選択( ()部分にシート名記載) 44 var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得 45 var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得 46 var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得 47 var updateRange = sheet.getRange('I' + currentRow); //どの列に更新日時を挿入したいか。この場合はI列 48 Logger.log(updateRange); //更新日の記入 49 if(currentRow > 10 && currentCol == 8) { //11行目以降かつH列の変更を参照とする 50 if(currentCell) { 51 updateRange.setValue(new Date()); 52 } 53 } 54} 55

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/18 15:28 編集
2022/11/18 16:52 編集
2022/11/18 16:57
2022/11/19 02:04
2022/11/19 07:19
2022/11/19 08:18 編集
2022/11/19 10:30
2022/11/19 11:43
2022/11/19 12:14
2022/11/20 00:55
2022/11/20 02:01
2022/11/20 02:07
2022/11/20 07:24 編集
2022/11/20 08:17
2022/11/20 13:54 編集
2022/11/20 14:52
2022/11/20 16:08
2022/11/20 16:09
2022/11/20 16:37
2022/12/13 05:39