回答編集履歴
1
コード例追加
test
CHANGED
@@ -29,3 +29,59 @@
|
|
29
29
|
その二次元配列の要素を、行と列の二重ループで参照して、値の置換を行い、
|
30
30
|
|
31
31
|
それを`Range.setValues()`でシートに書き戻せばよいでしょう。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
---
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
追記
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
要望があったのでコード例を示します
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
```GAS
|
48
|
+
|
49
|
+
const ss = SpreadsheetApp.getActiveSpreadsheet();
|
50
|
+
|
51
|
+
const sheet = ss.getSheetByName("シート1");
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
const lastRow = sheet.getRange(sheet.getMaxRows(), 2).getNextDataCell(SpreadsheetApp.Direction.UP).getRow(); //B列基準で最終行番号取得
|
56
|
+
|
57
|
+
const numRows = lastRow; // 1行目からlastRow行目までなので行数はlastRowになる
|
58
|
+
|
59
|
+
const range = sheet.getRange(1, 4, numRows, 4); // D1:G最終行
|
60
|
+
|
61
|
+
let arr = range.getValues(); // arrはnumRows行×4列の2次元配列
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
for (let row = 0; row < numRows; row++) {
|
66
|
+
|
67
|
+
for (let col = 0; col < 4; col++) { // 配列へのインデックスrowとcolは0から
|
68
|
+
|
69
|
+
if (arr[row][col] == "") {
|
70
|
+
|
71
|
+
arr[row][col] = "0";
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
range.setValues(arr);
|
82
|
+
|
83
|
+
```
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
mapとか使うとより洗練されたコードになりますけど、わかりやすいコードにしました。
|