【GAS】すべてのセルで実行する
スプレッドシートの記載のある範囲のすべてのセルで関数を実行します。
function fun(){ //アクティブなシートを選択 let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); let range = sheet.getDataRange();//記載のある範囲を選択 let valuse = range.getValues();//範囲の値を取得 for(let i = 0; i < valuse.length; i++){//縦のループ for(let a = 0; a < valuse[i].length; a++){//横のループ //行いたい処理 } } range.setValues(valuse);//結果をシートに戻す }
以下解説
「記載のある範囲」とは、A1からマウスでドラッグしたときのような選択になるので、間にからのセルがあるとからのセルでも実行されます。
getDataRange()とgetValues()を使用しているので、値は2次元配列で取得されているのでループを2重にすることで個別の値が取得できます。
取得した値を全部5倍にすると以下のようになります。
for(let i = 0; i < valuse.length; i++){//縦のループ for(let a = 0; a < valuse[i].length; a++){//横のループ valuse[i][a] = valuse[i][a] * 5;//valuse[i][a]を5倍してvaluse[i][a] に戻す } }
空のセルを処理から外したい場合
for(let i = 0; i < valuse.length; i++){//縦のループ for(let a = 0; a < valuse[i].length; a++){//横のループ if(valuse[i][a] != ""){//valuse[i][a]が空でなければ実行する //行いたい処理 } } }
横のループを行わずaの値を固定することで、特定の列だけに処理を行うこともできます。