Google Apps Scriptã§ã¹ãã¬ããã·ãŒãã®ç¹å®è¡ããŸãšããŠåé€ãGASã
åçš®ç³è«ããŒã¿ãåçš®å°åž³çã«æŒããŠããã§ã«äœæ¥ãå®äºããã§ãã¯ãä»ãããã®ã«ã€ããŠã¯ãäžå®ã®ææ¥ã«ã¹ãã¬ããã·ãŒãããåé€ããããšããã·ãŒã³ããããŸããïŒä»¶ïŒä»¶çšåºŠã§ããã°æåã§åé€ããã°OKã§ããããã®éãèšå€§ã§ãããå°äžã€å¯Ÿè±¡ãšãªãè¡ã®ããŒã¿ãå¿ ãããé çªéãé£ç¶ããŠäžŠãã§ãããšã¯éããŸãããããããã®æã®äœæ¥ã¯ãã§ããã°æ¯æ¥ãæ·±å€ã«ã§ãåæã«ãã£ãŠãããŠæ¬²ããã«ãŒãã³ã®äžã€ã§ãã
ããã§ãããå®çŸããçºã®ã³ãŒããä»åã¯äœæããŠã¿ãããšæããŸããä»åã¯ãã¹ãã¬ããã·ãŒãäžããå®è¡ããããã«ããŠãããŸãã®ã§ããã®ãŸãŸã§ã¯ã¹ã¯ãªããããªã¬ãŒã§æ·±å€ã«èªåå®è¡ãšããããã«ã¯ãããŸããããäžéšã®ã³ãŒãã倿Žããã°ãã¹ã¯ãªããããªã¬ãŒã§ã䜿çšå¯èœã§ãã
ç®æ¬¡
ä»å䜿çšããã¹ãã¬ããã·ãŒã
- ä»å䜿çšããã¹ãã¬ããã·ãŒã
- Sheetã¯ã©ã¹ã®deleteRowsã¡ãœãã
- Rangeã¯ã©ã¹ã®sortã¡ãœãã
ãœãŒã¹ã³ãŒããšè§£èª¬
ãœãŒãããŠdeleteRowsããã³ãŒã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
//ç¹å®è¡ãåé€ããã³ãã³ã function deleteRows() { //ã¹ãã¬ããã·ãŒãã®ããŒã¿ãäžŠã³æ¿ã var ss = SpreadsheetApp.getActiveSpreadsheet(); var temp = ss.getSheetByName("data"); var range = temp.getRange("A2:F"); //2ååããœãŒãããŠæãã range.sort([{column: 6, ascending: true},{column: 1, ascending: true}]); //äžŠã³æ¿ãããŒã¿ãååŸããŠãåé€éå§è¡ãšåé€çµäºè¡ãååŸãã var sheet = temp.getRange("A2:F").getValues(); var dlength = sheet.length; var startflag = false; var startcnt = 0; var endcnt = 0; for(var i = 0;i<dlength;i++){ //éå§è¡ãç¹å®ãã if(startflag == false){ if(sheet[i][5] == "åŠçæžã¿"){ startcnt = 2 + i; endcnt = endcnt + 1; startflag = true; continue; }else{ continue; } } //çµäºè¡ãç¹å®ãã if(sheet[i][5] == "åŠçæžã¿"){ endcnt = endcnt + 1; }else{ break; } } //åé€ãã¹ãè¡ããªãå Žåã¯ããã°ã©ã ãçµäºãã if(startcnt == 0){ return; } //è¡ãåé€ãã temp.deleteRows(startcnt, endcnt); } |
解説
1è¡ãã€è¡ã®ããŒã¿ãèªã¿åããdeleteRowã³ãã³ããçºè¡ããããæ¹ã¯Excelã®ãããªããŒã«ã«ã®PCã§åäœããããã°ã©ã ãšããŠã¯åé¡ãªãã®ã§ãããGoogle Spreadsheetã¯ã¹ã¯ãªããã®åäœæéã«éãããããå°äžã€ãã®ææ³ã¯éœåºŠéœåºŠã¡ãœãããåŒã³åºãçºéåžžã«åäœãé ãã§ãããã®çºã5åã®å£ã«ã¶ã€ããã¹ã¯ãªããã忢ããŸããä»åã¯ãããåé¿ããçºã«äžæ¬åé€ãè¡ãããã«ããŠããŸããæ°åè¡ã®ããŒã¿ã§ãã£ãŠãæ°ç§ã§ããŒã¿ã®åé€ãå¯èœã§ãã
ã¹ãã¬ããã·ãŒãã®ããŒã¿ã®äžŠã³æ¿ã
dataã·ãŒãã®ããŒã¿ã«æŒããŠãA2:Fã®ç¯å²ã§äžæ¬ååŸåŸã«sortãå®è¡ããŠããŸãã6åç®ã®FåããŸãæé ã§ãªãã¹ãåæã«1åç®ã®Aåãæé ã§äžŠã³æ¿ããè¡ãããã«ããŠããŸããããããsortã¡ãœããã§ãããäžåã§ããããããªããšããã®äžŠã³é ã«äžŠã³æ¿ããã§ããŸããã®ã§æ³šæãäžåãã€sortããããšäžŠã³æ¿ããæã£ãéãã«ãªããŸããã
- sortã®columnã¯1ããã¯ããŸããŸãã0ããã§ã¯ãããŸããã
- ascendingã¯trueã§æé ãfalseã§éé ã«ãªããŸããä»åã¯æé ã䜿çšããŠããŸãã
- åæã«è€æ°åããœãŒãããçºã{}ã§ããã£ããœãŒãæå®ãã«ã³ãåºåãã§2ã€å ããŠããŸãããã®é çªã§åªå é äœãã€ããŠãœãŒããæãããŸãã
- sortãïŒåå¥ã®ã¡ãœãããšããŠå®è¡ããŠãã3ã®çµæã«ã¯ãªããŸããã
é åããŒã¿ããåé€éå§è¡ãšåé€çµäºè¡æ°ãååŸãã
startflagãšã¯ãåŠçæžã¿ãã®ã€ããè¡ããã£ãå Žåã«trueã«ããããã«ããŠããŸããããã¯ãåé€ãã¹ãè¡ããªãå ŽåïŒã€ãŸããfalseïŒã ã£ãå Žåã«ã¹ã¯ãªãããããã§çµäºãããçºã«å¿ èŠãªãã®ã§ãããŸãããåŠçæžã¿ãã®ã€ããè¡ãçºèŠããã以äžã®äœæ¥ãããŠããŸãã
- startflagãtrueã«ããŠããŸãã
- åé€éå§è¡ã§ããstartcntã«æ ŒçŽããŠããŸãã
- åé€çµäºè¡ã§ããendcntã«å€ããŸã1å ããŠããŸãã
- ãã®åŸã®ã«ãŒãã³ã§ãåŠçæžã¿ããããã°endcntã«1å ããããã«ããŠããŸãã
- ãåŠçæžã¿ãããªããªã£ã段éã§forã«ãŒããæããŠãstartcntãšendcntã確å®ããŸãã
è¡ã®åé€ã®å®è¡
startcntãšendcntã§ååŸããæ°å€ãå ã«ããŒã¿ãåé€ããŸãããå¿ ããããåŠçæžã¿ãã®ã€ããè¡ããããšã¯éããŸããã0ã§ãã£ãå Žåã«ã¯ãã¹ã¯ãªããã忢ãããŸãããã®ãŸãŸdeleteRowsãå®è¡æ°ãšãšã©ãŒã«ãªã£ãŠããŸãããã§ãããã£ãŠä»¥äžã®æé ã§è¡åé€ãè¡ãããŠããŸãã
- startcntãåæå€ã®0ã®ãŸãŸãªãã°ããåŠçæžã¿ãããŒã¿ãç¡ãã®ã§ããã®å Žã§returnããŠã¹ã¯ãªããçµäº
- startcntã0ãããªããã°ãdeleteRowsã§éå§è¡ãšçµäºè¡æ°ãåŒæ°ã«å ¥ããŠå®è¡
ããã§æ³šæãããã®ããdeleteRowsã¯äœè¡ç®ïœäœè¡ç®ãšããæå®ã§ã¯ãªããšããããšã§ããéå§è¡ããäœè¡åãåé€ãããšããæå®ãªã®ã§åéããããªãããã«æ³šæããŠäžããããŸããã¹ã¯ãªããå ã§startcntã2ããå§ãŸã£ãŠããŸãããããã¯ïŒè¡ç®ã¯ã¿ã€ãã«è¡ã ãããã®ããã«ããŠããŸãããŸããäžå¿2è¡ç®ããå§ãŸããšã¯éããªããšããäºãèæ ®ããŠãforã®ã«ãŠã³ã¿ã§ãããiããå ç®ããŠããŸãã
é åã䜿ã£ãŠåŠçããã³ãŒã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
//é
åã䜿ã£ãŠããŒã¿ã®ãã¡å¿
èŠãªãã®ã ããæ®ã function vanishrows(){ //ã¹ãã¬ããã·ãŒãã®ããŒã¿ãååŸ var ss = SpreadsheetApp.getActiveSpreadsheet(); var temp = ss.getSheetByName("data"); var range = temp.getRange("A2:F"); var data = range.getValues(); var length = data.length; //ããŒã¿ãã¯ãªã¢ãã range.clearContent(); //é
åãçšæ var array = []; //ã«ãŒãã§ãã§ãã¯ã®å
¥ã£ãŠããªãããŒã¿ã ããååŸ for(var i = 0;i<length;i++){ //ãã§ãã¯ä»ãã©ããç²Ÿæ» if(data[i][5] == "â"){ //äœãããªãã§ã¹ã«ãŒãã }else{ array.push(data[i]); } } //é
åã®çžŠæšªã®æ°ãååŸããŠã·ãŒãã«è²Œãä»ã var lastColumn = array[0].length;ãã//ã«ã©ã ã®æ°ãååŸãã var lastRow = array.length; ãããã//è¡ã®æ°ãååŸãã temp.getRange(2,1,lastRow,lastColumn).setValues(array); //空çœè¡ãåé€ãã var dataman = ss.getSheetByName("data").getRange("A:A").getValues(); var dlength = dataman.length; //åé€å¯Ÿè±¡æçµè¡ãç¹å®ãã var cnt = 0; var startcnt = 0; for(var i = 0;i<dataman.length;i++){ if(dataman[i][0] == ""){ break; }else{ cnt = cnt + 1; } } //startcntãšdlengthã®å·®åãåã var sabun = dlength - cnt; if(sabun == 0){ return; }else{ startcnt = cnt + 1; } //è¡ãåé€ãã temp.deleteRows(startcnt, sabun); } |
- ãœãŒãããŠããåé€ããæ¹æ³ã«äŒŒãŠããŸãããé åã§åã£ãããŒã¿ããããã§ãã¯ã®ãªãããŒã¿ãæœåºããŠè²Œãä»ããæ¹æ³ã§ãã
- 貌ä»ãåŸã«ã空çœè¡ãäžã«æ®ãã®ã§ãããããdeleteRowsã§åé€ããŠããŸãã
- 貌ãä»ããåã«ããŒã¿ãclearContentã§æ¶å»ããŠããŸããæ¡ä»¶ä»ãæžåŒèšå®ãæ®ãããã®ã§ãclearã¡ãœããã¯äœ¿çšããŠããŸããã
- 空çœè¡ãŸã§ã®å®ããŒã¿æ°ãã«ãŒãã§ååŸããŠããŸããgetDataRangeã§ããšãè²ä»ãã®ã»ã«ã¯ããŒã¿æããšèŠãªãããã®ã§ããã®ææ³ãåã£ãŠããŸãã
- å®ããŒã¿æ°ãšååŸããŒã¿æ°ãäžèŽããå Žåã¯ã空çœè¡ç¡ããšããããšã§ãããã°ã©ã ãçµäºãããŠããŸãã
- å·®åã1è¡ä»¥äžããå Žåã«ã¯ãdeleteRowsã§åé€ãå®è¡ããŠããŸã
- é åã§åŠçããæ¹æ³ã¯ãå¿çšããã°ãåŠçæžã¿ãã®å ¥ã£ãŠãããŒã¿ã ããå¥ã®ã·ãŒãã«éé¿ãªããŠããšãã§ããŸãã
å€å žçãª1è¡ãã€ç²Ÿæ»ããæ¹æ³
Google Apps Scriptåæã®ãããããã£ããïŒè¡ãã€å 容ã確èªããŠåé€ããããšããææ³ã§ããäœãããã®ææ³ã¯1è¡ãã€åé€ããã¡ãœãããçºè¡ããããã察象ããŒã¿ãå€ãå Žåãåäœãé ããªããã¹ã¹ã¡åºæ¥ãŸããã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function deleteman(){ //ã·ãŒããååŸãã var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data"); //æçµè¡ãååŸãã var lastRow = sheet.getLastRow() - 2; //ã·ãŒãããŒã¿ãååŸãã var range = sheet.getRange("A2:F").getValues(); //1è¡ãã€ç²Ÿæ»ã㊠for (var i = lastRow; i >= 1; i--) { //ã¬ã³ãŒããäžååãåºã let rec = range[i]; //ãã§ãã¯å¯Ÿè±¡ãã©ããïŒ if(rec[5] == "â"){ //è¡ãåé€ãã sheet.deleteRow(i + 2) } } } |
- getLastRowã§æçµè¡ãååŸããŸãããããããã¯è¡ã€ã³ããã¯ã¹ã§1ããå§ãŸããŸãããŸããããŒã¿ã¯2è¡ç®ä»¥éãããšãªã£ãŠããã®ã§ãæå³çã«-2ãæå®ããŠé åã§åŠçã§ããããã«ããŠããŸãïŒé åã¯0ããå§ãŸãããŸãA2:Fã§ããŒã¿ãåã£ãŠãã®ã§1è¡ç®ãé€å€ããŠãããïŒ
- lastRowã®å€ã§ã«ãŒããéåãã«ããŸãã1è¡ãã€åŠçããå Žåã¯äžããã§ã¯ãªãäžããåŠçãããªããšåé€ããåã ãäœçœ®ããããŠããŸãããã§ãããã£ãŠã«ãŒãã¯å ç®ã§ã¯ãªãi--ãšããŠæžç®ãšãªã£ãŠããŸãã
- sheet.deleteRowã«ãŠè¡ãåé€ããŸãããããã§æå®ããã®ã¯è¡ã€ã³ããã¯ã¹ãªã®ã§ãiã®å€ã«+2ã§é åã®å Žåã®å€ããå€ãæ»ããŠãããå¿ èŠããããŸãã
ããæ¹ãã¡ãã£ãšãããããäžã«ã1è¡ãã€åé€ã ãšããŒã¿éãå€ãå Žå6åã®å£ã«ã¶ã€ããå¯èœæ§ããããããããŸããã®æã¯æè¿äœ¿ããŸããã
å®è¡çµæ
ã¹ãã¬ããã·ãŒããéã以äžã®äœæ¥ããããšãè¡ãåé€ãããŸãã
- åé€å¯Ÿè±¡ã«ãããè¡ã®Fåã«ãããŠããã§ãã¯ãä»ãå ãã
- ã¡ãã¥ãŒãããäœæ¥çšãâãåé€å®è¡ããããã¯ãåé€å®è¡ãã®ïŒããã¯ãªãã¯ãããåé€å®è¡ããœãŒãããŠããåé€ããã®ïŒãé åããŒã¿ã貌ãä»ãçŽããŠããåé€ã®ãã¿ãŒã³ã§ãã
- æåã®äžåã ãæ¿èªäœæ¥ããããŸãã
- æ¿èªåŸããã§ãã¯ã®å ¥ã£ãè¡ããœãŒããããäžã§äžæ¬åé€ãããŸãã
ãã€ã³ã
- ä»åã®ã¹ã¯ãªãããããªã¬ãŒã§äœ¿ãããå Žåã«ã¯ãäºãã¹ãã¬ããã·ãŒãã®IDãèšè¿°ããŠããå¿ èŠããããŸãã
- ã¹ã¯ãªããããªã¬ãŒã§äœ¿çšããå Žåã«ã¯ãSpreadsheetApp.getActiveSpreadsheetã§ã¯ãªããSpreadsheetApp.openById()ã«ãŠãåŒæ°ã«ã¹ãã¬ããã·ãŒãã®IDãå ¥ããŠäœ¿ããŸãããã
- ä»åã®ã¹ã¯ãªããã¯ãalertã§åãåããçãããŠããªãã®ã§ããããªãåé€ãããŸãã®ã§ãå®åã§äœ¿ãå Žåã«ã¯ãalertã§åé€ãããã©ãããåãåããããã³ãŒãã远å ãããšè¯ãã§ãããã
- åé€ãã察象ã®è¡ãããããããããã«ãæ°åŒã«ããæ¡ä»¶ä»ãæžåŒèšå®ãå ããŠããŸãã
- äžè¡ãã€åé€ããããã§ã¯ãªãã®ã§ãéåžžã«é«éã§åŠçãå¯èœã§ãã
- ããããè¡ãããŒã¿ã®äžãã粟æ»ããŠäžè¡ã¥ã€åé€ããè¡åé€ã³ãŒãïŒdeleteRowã¡ãœããïŒã¯ãæ°åè¡ã§5åã®å£ã«ééããŠæ¢ãŸãå¯èœæ§ããããŸããdeleteRowsã䜿ããªãã®ã¯ãã®ããã§ãã
é¢é£ãªã³ã¯
- Googleãã©ã€ãã®ã¹ãã¬ããã·ãŒãã§ç©ºè¡ãèªååé€ããã¹ã¯ãªãããäœãã
- è¡ãåé€ãã
- Google Apps Script | Spreadsheetã®ç©ºçœè¡ã®ã¿ãåé€ãã
- Excel(ãšã¯ã»ã«) VBAå ¥éïŒæ¡ä»¶ãæºããè¡ãåé€ãã
- Google Apps Scriptã«ãããéè€ããŒã¿ã®åãŸãããšåé€ã
- GoogleSpreadSheetã§ãæå®ããç¯å²ã®ãããŒã¿ãå«ãŸããŠããæçµè¡ãååŸããæ¹æ³ã