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

回答編集履歴

1

よりよい解決策を提示

2020/08/22 08:47

投稿

nekoniki
nekoniki

スコア2411

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