回答編集履歴

3

 

2022/01/30 10:32

投稿

退会済みユーザー
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

 

2022/01/30 09:32

投稿

退会済みユーザー
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

 

2022/01/30 09:31

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- 御記載の通り、GOOGLETRANSLATE関数は、H2:Hのような書き方をしても複数に対して適用できないようです。
1
+ 御記載の通り、GOOGLETRANSLATE関数は、先頭行だけH2:Hのような書き方をしても複数に対して適用できないようです。
2
2
 
3
3
  下記コードでは、C列にチェックの入っている行について、K列に数式を設定し、直後に値貼り付けします。
4
4