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