質問: arry_list [ [[ 0, '1111' ],[ 1, '2222' ] ], [[ 2, '3333' ], [ 3, '4444' ],[ 4, '5555' ],[ 5, '6666' ]] ] GASでこのような多重listがあったとします。 アクセス数回数を減らすために1次元にしまうす。 arry [ [ 0, '1111' ],[ 1, '2222' ] ],[ 2, '3333' ], [ 3, '4444' ],[ 4, '5555' ],[ 5, '6666' ] ] そしてスプレットシートに書き出しました。 次にarry_listの境目のセルの色を変えたいと思いました。 この例ですと、arryの0,1,2,5の背景だけを変えたいです。 ``` var color="#FFFF00"; sheet.getRange(????).setBackground(color); ``` ``` sheet.getRange('A1').setBackground(color); sheet.getRange('A2').setBackground(color); sheet.getRange('A3').setBackground(color); sheet.getRange('A6').setBackground(color); ``` のようにそれぞれ範囲指定するのはデータ数が多くなるとアクセス数の関係でエラーが出ます。 一度だけのgetRangeはどのようにすればいいのでしょうか?
回答: この質問の前提だと RangeList を setBackground ですかね。 ``` SpreadsheetApp.getActive().getActiveSheet().getRangeList(['A1:A3', 'A6']).setBackground("red"); SpreadsheetApp.getActive().getActiveSheet().getRangeList(['A1','A2:A3', 'A6']).setBackground("red"); SpreadsheetApp.getActive().getActiveSheet().getRangeList(['A1','A2','A3', 'A6']).setBackground("red"); ``` ただ A1 と A2 は偶然となりあっているにすぎず、逆に A2 と A3 は定義上必然的にとなりあっているので、その辺をうまくロジックで吸収するのはそれなりに大変な気がします。 仮定の話ではなく、解く価値のある真の問題を提示されることを期待します。 (初手で 3 重になっているのが Google Sheet とあわないですし、背景色をつけるという見た目の問題は、データが入っているのとは別のシートで条件書式で解決したほうがいいと考えます)