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

質問編集履歴

2

コードの表記を訂正

2021/02/05 13:35

投稿

Habanero_GAS
Habanero_GAS

スコア3

title CHANGED
File without changes
body CHANGED
@@ -19,14 +19,14 @@
19
19
  ![イメージ説明](d1bb13aca4b648b7e0d5b2f9a9721050.png)
20
20
  上図のように、実は取り出したい配列は「『15行目から最終行のうち』表示されている行」でした。
21
21
  ```GAS
22
- コード
23
- ```function test(){
22
+ function test(){
24
23
  const sheet = SpreadsheetApp.getActiveSheet();
25
24
  const lastrow = sheet.getLastRow();
26
25
  const values = sheet.getRange(15,1,lastrow-14, 2).getValues();
27
26
  const show_values = values.filter((row,i) => !sheet.isRowHiddenByUser(i+15));
28
27
  console.log(show_values);
29
28
  }
29
+ ```
30
30
  isRowHiddenByUserの引数を「i」から[i+15」に変えることで
31
31
  やりたかったことが実現できました。
32
32
 

1

やりたかったことは実現できたが、さらなる質問を追加

2021/02/05 13:35

投稿

Habanero_GAS
Habanero_GAS

スコア3

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,30 @@
10
10
  例えば、全データ数が10個あり、上から2,3,8行目のデータのみが表示されている状態があったとします。(1,4~7,9,10行目が非表示になっている)
11
11
  ここでgetRange().getValues()により配列を取得すると2行目から8行目まで、7つのデータが入った配列が取得されてしまいます。
12
12
 
13
- GASで、表示されている行のみを取得する方法ってあるのでしょうか?
13
+ GASで、表示されている行のみを取得する方法ってあるのでしょうか?
14
+
15
+
16
+
17
+ 2021/02/05追記
18
+ すみません、例がよくなかったようです…
19
+ ![イメージ説明](d1bb13aca4b648b7e0d5b2f9a9721050.png)
20
+ 上図のように、実は取り出したい配列は「『15行目から最終行のうち』表示されている行」でした。
21
+ ```GAS
22
+ コード
23
+ ```function test(){
24
+ const sheet = SpreadsheetApp.getActiveSheet();
25
+ const lastrow = sheet.getLastRow();
26
+ const values = sheet.getRange(15,1,lastrow-14, 2).getValues();
27
+ const show_values = values.filter((row,i) => !sheet.isRowHiddenByUser(i+15));
28
+ console.log(show_values);
29
+ }
30
+ isRowHiddenByUserの引数を「i」から[i+15」に変えることで
31
+ やりたかったことが実現できました。
32
+
33
+ もう少々お聞きしてもよろしいでしょうか?
34
+ filterメソッドの引数(row,i)とisRowHiddenByUserとの関係をご教示いただけますでしょうか。
35
+ アロー式にまだ慣れていないので、functionだとどういう書き方となるのか
36
+ 教えていただけると今の私でも理解できるかもしれません。
37
+
38
+ 大変恐縮ではございますが、せっかくなのできちんと理解しておきたいと思うのです。
39
+ 宜しくお願いいたします。