セル範囲を操作する

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

GASでスプレッドシートに複数の数式を設定するには「setFormulas(formulas)」を利用する。

setFormulas(formulas)

数式の長方形グリッドを設定します(この範囲のディメンションと一致する必要があります)。数式は A1 表記にしてください。このメソッドは、2 次元の数式の配列を取り、行、次にインデックスの順にインデックスを作成します。配列ディメンションは範囲ディメンションに対応している必要があります。

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

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

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

setFormulas(formulas)を実行することで、

・複数の数式を一括で設定できる

といった動作が確認できます。

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

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

スプレッドシートに複数の数式を設定する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)のパラメーター

名前説明
formulasString[][]数式の2次元文字列配列。
setFormulas(formulas)のパラメーター

setFormulas(formulas)の戻り値

Range - チェーン用の範囲。

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

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

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

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

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

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

-セル範囲を操作する