回答編集履歴
1
コード例追加
answer
CHANGED
@@ -13,4 +13,32 @@
|
|
13
13
|
|
14
14
|
で、`Range.getValues()`が返すのは二次元配列です。
|
15
15
|
その二次元配列の要素を、行と列の二重ループで参照して、値の置換を行い、
|
16
|
-
それを`Range.setValues()`でシートに書き戻せばよいでしょう。
|
16
|
+
それを`Range.setValues()`でシートに書き戻せばよいでしょう。
|
17
|
+
|
18
|
+
---
|
19
|
+
|
20
|
+
追記
|
21
|
+
|
22
|
+
要望があったのでコード例を示します
|
23
|
+
|
24
|
+
```GAS
|
25
|
+
const ss = SpreadsheetApp.getActiveSpreadsheet();
|
26
|
+
const sheet = ss.getSheetByName("シート1");
|
27
|
+
|
28
|
+
const lastRow = sheet.getRange(sheet.getMaxRows(), 2).getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); //B列基準で最終行番号取得
|
29
|
+
const numRows = lastRow; // 1行目からlastRow行目までなので行数はlastRowになる
|
30
|
+
const range = sheet.getRange(1, 4, numRows, 4); // D1:G最終行
|
31
|
+
let arr = range.getValues(); // arrはnumRows行×4列の2次元配列
|
32
|
+
|
33
|
+
for (let row = 0; row < numRows; row++) {
|
34
|
+
for (let col = 0; col < 4; col++) { // 配列へのインデックスrowとcolは0から
|
35
|
+
if (arr[row][col] == "") {
|
36
|
+
arr[row][col] = "0";
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
range.setValues(arr);
|
42
|
+
```
|
43
|
+
|
44
|
+
mapとか使うとより洗練されたコードになりますけど、わかりやすいコードにしました。
|