GASでスプレッドシートに複数の数式を設定するには「setFormulas(formulas)
」を利用する。
setFormulas(formulas)
数式の長方形グリッドを設定します(この範囲のディメンションと一致する必要があります)。数式は A1 表記にしてください。このメソッドは、2 次元の数式の配列を取り、行、次にインデックスの順にインデックスを作成します。配列ディメンションは範囲ディメンションに対応している必要があります。
https://developers.google.com/apps-script/reference/spreadsheet/range#setformulasformulas
スプレッドシートに複数の数式を設定するGAS実行の様子
setFormulas(formulas)メソッドを利用して、スプレッドシートに複数の数式を設定するGASを実行してみました。
setFormulas(formulas)を実行することで、
・複数の数式を一括で設定できる
といった動作が確認できます。
スプレッドシートで範囲を保護する場合は、以下記事を御覧ください。
スプレッドシートに複数の数式を設定するGAS
function setformulas(){
// SpreadsheetAppを起動
let ss = SpreadsheetApp.getActiveSpreadsheet();
// 0番目のシートを取得
let sht = ss.getSheets()[0];
//数式に代入するinputBoxを作成
const val = Browser.inputBox("値を入力してください");
//valを数値に変換
const num = Number(val);
//getRange(1,1)にvalを設置
sht.getRange(1,1).setValue(val);
//forで値を適当に設置
for(let i=1;i<=4;i++){
sht.getRange(i,2).setValue(num+i);
}
//数式を適当に4つ作成
const formula01 = "=sum(A1:B1)";
const formula02 = "=sum(A1:B2)";
const formula03 = "=sum(A1:B3)";
const formula04 = "=sum(A1:B4)";
//配列で設置する準備
const formulas = [
[formula01],
[formula02],
[formula03],
[formula04]
];
//数式を設置する範囲をcellに準備
const cell = sht.getRange(1,3,4,1);
//cellをA1形式にしてrangeに格納
const range = cell.getA1Notation();
//■setFormulasで変数formulasをcellに設置してアクティブに
cell
.activate()
.setFormulas(formulas);
//数式を実装した範囲とその旨を掲載
Browser.msgBox("セル範囲「"+range+"」に数式を設置しました");
}
setFormulas(formulas)のパラメーター
名前 | 型 | 説明 |
---|---|---|
formulas | String[][] | 数式の2次元文字列配列。 |
setFormulas(formulas)の戻り値
Range - チェーン用の範囲。
スプレッドシートに複数の数式を設定するまとめ
GAS×スプレッドシートに複数の数式を設定するならsetFormulas(formulas)
メソッドを利用しましょう。