GASでスプレッドシートの複数のセル範囲を選択するには「getActiveRangeList()
」を利用する。
getActiveRangeList()
アクティブなシート内のアクティブな範囲のリストを返すか、アクティブnullな範囲がない場合に返します。
単一の範囲が選択されている場合、これはgetActiveRange()呼び出しとして動作します。
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getactiverangelist
スプレッドシートの複数のセル範囲を選択するGAS実行の様子
getActiveRangeList()メソッドを利用して、スプレッドシートの複数のセル範囲を選択するGASを実行してみました。
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】スプレッドシートの選択された範囲を取得する