セル範囲を操作する

【GAS】スプレッドシートの複数のセル範囲を選択する

GASでスプレッドシートの複数のセル範囲を選択するには「getActiveRangeList()」を利用する。

getActiveRangeList()

アクティブなシート内のアクティブな範囲のリストを返すか、アクティブnullな範囲がない場合に返します。

単一の範囲が選択されている場合、これはgetActiveRange()呼び出しとして動作します。

https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getactiverangelist

スプレッドシートの複数のセル範囲を選択するGAS実行の様子

getActiveRangeList()メソッドを利用して、スプレッドシートの複数のセル範囲を選択するGASを実行してみました。

getActiveRangeList()
getActiveRangeList()を実行した様子

getCell(row, column)メソッドでスプレッドシートの特定範囲のセルを選択する場合は、以下記事を御覧ください。

参照記事:【GAS】スプレッドシートで特定範囲のセルを選択する

スプレッドシートの複数のセル範囲を選択するGAS

function myFunction() {
  //SpreadsheetAppを起動
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //0番目のシートを選択
  var sht = ss.getSheets()[0]
 //YESNOで選択
 const yesno = Browser.msgBox("アクティブセル範囲を取得しますか?",Browser.Buttons.YES_NO);
 //YESなら
 //1~100行目までテキストを記載
  if(yesno == "yes"){
      for(i=1;i<=100;i++){
      let text = [
        ["No"+i,"Spread","Sheet","Blue"]
      ];
      sht.getRange(i,1,1,4).setValues(text);
      }
    //記入された開始セルを取得
    const stcell = Browser.inputBox("開始セルを選択(A1形式)");
    //記入された終了セルを取得
    const endcell = Browser.inputBox("終了セルを選択(A1形式)");
    //記入された任意の範囲をアクティブに
    sht.getRangeList([stcell+":"+endcell]).activate();
    //■getActiveRangeListでアクティブリストを取得
    const rng = SpreadsheetApp.getActiveRangeList();
    //アクティブリストのRange範囲を取得
    const getrng = rng.getRanges();
    //Range範囲を配列の値で取得
    const actrng = getrng[0].getValues();
    //取得した値を掲載
    Browser.msgBox("今のアクティブセル範囲は"+actrng+"です");
  }else{
    //キャンセルの旨を掲載
    Browser.msgBox("アクティブセル範囲を取得しませんでした");
  }
}

getActiveRangeList()の戻り値

RangeList— アクティブ範囲のリスト

スプレッドシートの複数のセル範囲を選択するまとめ

GAS×スプレッドシートの複数のセル範囲を選択するならgetActiveRangeList()メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートでセル範囲をA1形式で指定・選択する

関連記事:【GAS】スプレッドシートで指定範囲をアクティブシートの選択セルに設定する

関連記事:【GAS】スプレッドシートでアクティブな範囲のリストを取得する

関連記事:【GAS】スプレッドシートの選択された範囲を取得する

関連記事:【GAS】スプレッドシートのアクティブなセルを取得するgetCurrentCell編

関連記事:【GAS】スプレッドシートのアクティブなセルを取得する

-セル範囲を操作する