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形式の指定を誤ると望んだ計算結果が受け取れなくなってしまうので、注意して作成しましょう。
スプレッドシートで範囲を保護する場合は、以下記事を御覧ください。
スプレッドシートに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)のパラメーター
名前 | 型 | 説明 |
---|---|---|
formula | String | 文字列の数式 |
setFormulaR1C1(formula)の戻り値
Range - チェーン用の範囲。
スプレッドシートにR1C1数式を設定するまとめ
GAS×スプレッドシートにR1C1数式を設定するならsetFormulaR1C1(formula)
メソッドを利用しましょう。