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はセル参照ができないようでした
