回答編集履歴

1

もともと不十分だった説明の補足

2021/12/10 05:44

投稿

daltonya
daltonya

スコア109

test CHANGED
@@ -1,3 +1,69 @@
1
+ > 別のスプレッドシートから転記させた際に構文内にclear()が含まれているため条件付き書式が消えてしまいます。
2
+
3
+
4
+
5
+ とのことでしたので、質問の意図を、以下のように解釈しています。
6
+
7
+ ①転記前は、データと書式が設定されていた。
8
+
9
+ ②転記するために、clear()を使用した。
10
+
11
+ ③clear()によって書式までも消されてしまった。
12
+
13
+ ④そのため、clear()後にもう一度書式を設定するコードを試みた。
14
+
15
+
16
+
17
+ これであれば、
18
+
19
+ ```
20
+
1
- ```clearContent()```
21
+ clearContent()
22
+
23
+ ```
2
24
 
3
25
  を使用すれば、書式を維持して、値のみを削除することができますよ。
26
+
27
+
28
+
29
+ また、
30
+
31
+ ```
32
+
33
+ var sss = SpreadsheetApp.getActive().getActiveSpreadsheet();
34
+
35
+ var hss = sss.getSheetByName('Bシート');
36
+
37
+
38
+
39
+ //条件付き書式の範囲設定
40
+
41
+ var css = sss.getRange('M2:N');
42
+
43
+ ```
44
+
45
+ のコードについて2点ほど。
46
+
47
+ ① スプレッドシートを取得する際、getActive()は不要です。
48
+
49
+ ```
50
+
51
+ const sss = SpreadsheetApp.getActiveSpreadsheet();
52
+
53
+ ```
54
+
55
+ こちらで十分です。
56
+
57
+
58
+
59
+ ②最終行ですが、getRange()を、スプレッドシートに対して行っており、シートの指定ができていません。
60
+
61
+ ですので、
62
+
63
+ ```
64
+
65
+ const css = hss.getRange(“M2:N”);
66
+
67
+ ```
68
+
69
+ とすると良いでしょう。