セル範囲を操作する

【GAS】スプレッドシートにR1C1数式を設定する

GASでスプレッドシートにR1C1数式を設定するには「setFormulaR1C1(formula)」を利用する。

setFormulaR1C1(formula)

この範囲の数式を更新します。数式は R1C1 表記で指定する必要があります。

https://developers.google.com/apps-script/reference/spreadsheet/range#setformular1c1formula

スプレッドシートにR1C1数式を設定するGAS実行の様子

setFormulaR1C1(formula)メソッドを利用して、スプレッドシートにR1C1数式を設定するGASを実行してみました。

setFormulaR1C1を設置することで

  • R1C1形式の数式をセルに設置する

といったことが可能です。

ただし、R1C1形式の指定を誤ると望んだ計算結果が受け取れなくなってしまうので、注意して作成しましょう。

スプレッドシートで範囲を保護する場合は、以下記事を御覧ください。

参照記事:【GAS】スプレッドシートで範囲を保護する

スプレッドシートにR1C1数式を設定するGAS

function setFormular1c1(){
 //SpreadsheetAppを起動
 let ss = SpreadsheetApp.getActiveSpreadsheet();
 //0番目のシートを取得
 let sht = ss.getSheets()[0];

 //見出しを作成・付与
 const text = [
   ["適当な値↓","適当な値*3↓","合計↓"]
 ];
 sht.getRange(1,2,1,3).setValues(text);

 //inputBoxで値を入力してvalへ格納しnumへ数値変換
 const val = Browser.inputBox("適当な値を入力してください");
 const num = Number(val);

 //range(2,2)へnumを設置、range(2,3)へnum*3倍を設置
 sht.getRange(2,2).setValue(num);
 sht.getRange(2,3).setValue(num*3);

 //getRange(2,4)を設置してA1形式に
 const cell = sht.getRange(2,4);
 const cell01 = cell.getA1Notation();

 //cell範囲にsetFormulaR1C1を設置
 cell
 .activate()
 .setBackground("yellow")
 .setFormulaR1C1("=SUM(R[0]C[-2]:R[0]C[-1])");

 //入力した範囲のセルを中央揃えに
 const range = sht.getRange(1,2,2,3);
 range.setHorizontalAlignment('center');

 Browser.msgBox("セル「"+cell01+"」に.setFormulaR1C1を設置しました");
}

setFormulaR1C1(formula)のパラメーター

名前説明
formulaString文字列の数式
setFormulaR1C1(formula)のパラメーター

setFormulaR1C1(formula)の戻り値

Range - チェーン用の範囲。

スプレッドシートにR1C1数式を設定するまとめ

GAS×スプレッドシートにR1C1数式を設定するならsetFormulaR1C1(formula)メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートの範囲をセル結合する

関連記事:【GAS】スプレッドシートで縦方向にセル結合する

関連記事:【GAS】スプレッドシートの指定範囲を昇順・降順に並び替える

関連記事:【GAS】スプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得する

-セル範囲を操作する