実現したいこと
2つのGASを組み合わせたい
1つ目のコピペ作業が完了したら、2つ目で値をクリアにしたい
1つ目
https://teratail.com/questions/00pywgdd75r13y
上記の作業
2つ目
繰越残更新用シートのI,K,M,O,Q,AC列に”8”があればそのセルをクリアしたい
・”8”は完全一致のみ反応したい
・繰越残更新用シートはこれからどんどん下に増えていく
・I,K,M,O,Q,AC列はINDIRECT関数で別シートから表示されている
発生している問題・分からないこと
2つのGASの組み合わせ方がわからないです
該当のソースコード
1つ目
1function get1() { 2 // 履歴データの基準となるセル 3 const startCellName = 'B9'; 4 5 // 品名(ダンボール)のセル 6 const itemCellName = 'A4'; 7 8 // 品名Noの行 9 const itemNumberRow = 4; 10 11 // 履歴データの列数 12 const numColumns = 5; 13 14 // 送信履歴データの記入開始列 15 const logStartColumn = 4; 16 17 // それぞれのシートを取得 18 const itemSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ダンボール'); 19 const logSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('送信履歴'); 20 21 // ダンボールシートの基準セルの行番号と列番号とダンボールNo 22 const startCell = itemSheet.getRange(startCellName); 23 const itemStartRow = startCell.getRow(); //行 24 const itemStartColumn = startCell.getColumn();//列 25 26 // 履歴見出しを作成 27 const date = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd'); 28 const item = itemSheet.getRange(itemCellName).getValue(); 29 const itemNumber = startCell.offset(itemNumberRow - itemStartRow, 0).getValue(); 30 const titles = [date, item, itemNumber]; 31 32 // ダンボールシートの基準セルからデータが連続する最下行までの行数 33 const itemLastRow = startCell.getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); 34 const numRows = itemLastRow - itemStartRow + 1; 35 36 // 送信履歴シートの最終行 37 const logLastRow = logSheet.getLastRow(); 38 39 // 履歴データを取得 40 const values = itemSheet 41 .getRange(itemStartRow, itemStartColumn, numRows, numColumns) 42 .getValues(); 43 44 // 履歴見出しを記入 45 logSheet 46 .getRange(logLastRow + 1, 1, 1, titles.length) 47 .setValues([titles]); 48 49 // 履歴データを記入 50 logSheet 51 .getRange(logLastRow + 1, logStartColumn, values.length, values[0].length) 52 .setValues(values); 53 54 // 結果をログに表示 55 Logger.log(values); 56} 57 58
2つ目
1function RIREKI8() { 2 // 初期設定 3 var rowData = 3; // データの開始行 4 var columnH = 8; // 複数の列の開始列(H列) 5 var columnP = 17; // 複数の列の終了列(Q列) 6 var columnAR =29; // 単独の列(AC列) 7 var clearValue = '8'; // クリア対象の値 8 9 var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); 10 var sheet = spreadSheet.getSheetByName('繰越残更新用'); 11 var values = sheet.getDataRange().getValues(); 12 13 // 行、列の値を確認しながら該当するセルをクリア 14 // ※ 配列valuesの要素は行(row)、列(col)ともシートの行番号、列番号より 1 小さい 15 for (var row = rowData - 1; row < values.length; row++ ) { 16 // 複数の列の範囲の処理 17 for (var col = columnH - 1; col <= columnP - 1; col++) { 18 if (values[row][col] == clearValue) { 19 sheet.getRange(row + 1, col + 1).setValue(''); 20 } 21 } 22 // 単独の列の範囲の処理 23 if (values[row][columnAR - 1] == clearValue) { 24 sheet.getRange(row + 1, columnAR).setValue(''); 25 } 26 } 27} 28
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
初心者すぎてどこをどう変更したらいいのかわからなかった
補足
特になし
回答1件
あなたの回答
tips
プレビュー