teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

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

2021/12/10 05:44

投稿

daltonya
daltonya

スコア109

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