Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2018年1月31日水曜日

setValuesでセルに関数を入力したい


setFormula() を使えばセル参照もできますが
setValue() を使いたいケースがあったので実現する方法を探してみました

indirect関数を使うと実現できました
range.setValue('=indirect("A"&row())');


比較のために以下のコード.gsでsetFormulaとsetValueを試してみます
  •   var setB = rangeB.setFormula("=A1");
  •   var setC = rangeC.setValue('=indirect("A"&row())');
  •   var setD = rangeD.setValue('="A"&row()');



コード.gs
function set_formula(){
  var sh = SpreadsheetApp.getActiveSheet();
  var rangeB = sh.getRange(1, 2)
  var rangeC = sh.getRange(1, 3);
  var rangeD = sh.getRange(1, 4);
  rangeB.setFormula("=A1");
  rangeC.setValue('=indirect("A"&row())');
  rangeD.setValue('="A"&row()');
}
意訳
この機能がやること
シートを取得して
B1セルを指定して
C1セルを指定して
D1セルを指定して
B1セルに =A1 を入れて
C1セルに =indirect("A"&row())を入れて
D1セルに="A"&row()を入れる



コード.gs実行結果


B1とC1はセル参照ができてD1はセル参照ができないようでした


参考

ドキュメント エディタ ヘルプ / INDIRECT
https://support.google.com/docs/answer/3093377

Latest post

Google Formsで記述式の質問に字数制限を設定したい

記述式の質問には「回答の検証」を設定することができます フォームの編集画面 右下の︙メニューで「回答の検証」を選択します 検証方法には「数値」「テキスト」「長さ」「正規表現」という種類があります 今回は字数制限したいので「長さ」を選びます 長さには「最大文字数」か「最小文字数」を...