回答編集履歴

1

よりよい解決策を提示

2020/08/22 08:47

投稿

nekoniki
nekoniki

スコア2409

test CHANGED
@@ -1,3 +1,39 @@
1
1
  `getActiveRange()`で取得できるようです。
2
2
 
3
3
  - [getActiveRange()](https://developers.google.com/apps-script/reference/spreadsheet/sheet#getActiveRange())
4
+
5
+
6
+
7
+ # 追記
8
+
9
+ アクティブ範囲が飛び飛びで複数ある場合は`getActiveRangeList()`の方が良いようです。
10
+
11
+ 下記はアクティブ範囲の開始行と終了行を取得するサンプルです。
12
+
13
+ ここに「A列以外の選択を無視する」を追加する場合は`getCell()`等で選択列を取得・判定させればいけると思います。
14
+
15
+
16
+
17
+ ```GAS
18
+
19
+ var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
20
+
21
+ // アクティブな範囲の配列を取得
22
+
23
+ var rangeList = sheet.getActiveRangeList().getRanges();
24
+
25
+ // 取得したアクティブな範囲をループで回す
26
+
27
+ for(var i = 0; i < rangeList.length ; i++){
28
+
29
+ // 範囲の開始行
30
+
31
+ Logger.log(rangeList[i].getRow());
32
+
33
+ // 範囲の終了行
34
+
35
+ Logger.log(rangeList[i].getLastRow());
36
+
37
+ }
38
+
39
+ ```