回答編集履歴
3
test
CHANGED
@@ -35,14 +35,14 @@
|
|
35
35
|
const checks = sh.getRange('C2:C').getValues().flat();
|
36
36
|
|
37
37
|
// C列のうちチェックが入っている行のインデックスを取得
|
38
|
-
const checkedIndice = checks.map((e, i) => e ? i : false).filter(i => i !== false);
|
38
|
+
const checkedIndices = checks.map((e, i) => e ? i : false).filter(i => i !== false);
|
39
39
|
|
40
40
|
// K列の現状の値を取得
|
41
41
|
const originalValues = range.getValues().flat();
|
42
42
|
|
43
43
|
// K列のうち、C列にチェックが入っている行を数式に置き換える。チェックが入っていない行は元の値のまま。
|
44
44
|
const modifiedValues = originalValues.map((e, i) =>
|
45
|
-
checkedIndice.includes(i) ? [`=GOOGLETRANSLATE(H${i + 2}, "en", "ja")`] : [e]);
|
45
|
+
checkedIndices.includes(i) ? [`=GOOGLETRANSLATE(H${i + 2}, "en", "ja")`] : [e]);
|
46
46
|
|
47
47
|
// K列を更新(数式含む)
|
48
48
|
range.setValues(modifiedValues);
|
2
test
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
```
|
26
26
|
|
27
27
|
上のコードでは1行ずつ読み取って1行ずつ書き込んでいます。行数によっては、下のように一括して書き込む方が若干早いかもしれません。(なお、下のコードはチェックが入っていない行に数式が入っている場合も全部値貼り付けになります)
|
28
|
-
```
|
28
|
+
```js
|
29
29
|
function myFunction2() {
|
30
30
|
const ss = SpreadsheetApp.getActiveSpreadsheet();
|
31
31
|
const sh = ss.getActiveSheet();
|
1
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
御記載の通り、GOOGLETRANSLATE関数は、H2:Hのような書き方をしても複数
|
1
|
+
御記載の通り、GOOGLETRANSLATE関数は、先頭行だけH2:Hのような書き方をしても複数行に対して適用できないようです。
|
2
2
|
|
3
3
|
下記コードでは、C列にチェックの入っている行について、K列に数式を設定し、直後に値貼り付けします。
|
4
4
|
|