GASでスプレッドシートにデータが存在する範囲を取得するには「getDataRange()
」を利用する。
getDataRange()
データが存在するディメンションに対応するRangeを返します。 これは、A1と(Sheet.getLastColumn()、Sheet.getLastRow())で囲まれた範囲を作成することと機能的に同等です。
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet?hl=en#getdatarange
スプレッドシートにデータが存在する範囲を取得するGAS実行の様子
getDataRange()メソッドを利用して、スプレッドシートにデータが存在する範囲を取得するGASを実行してみました。
getDataRange()メソッドは基本的に
上記をかけ合わせた動作と同じように、データが存在する全ての範囲を取得します。
getRange(a1Notation)
メソッドでスプレッドシートのセル範囲をA1形式で指定・選択する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートでセル範囲をA1形式で指定・選択する
スプレッドシートにデータが存在する範囲を取得するGAS
function getDataRange1(){
//SpreadsheetAppを起動
var ss = SpreadsheetApp.getActiveSpreadsheet();
//0番目のシートを選択
var sht = ss.getSheets()[0];
//■getDataRangeでデータが存在する範囲を取得
var rng = sht.getDataRange().getValues();
//YESNOで確認
var yesno = Browser.msgBox("シートに入力されている値を取得しますか?",Browser.Buttons.YES_NO_CANCEL);
//ーーーーー条件分岐ーーーーー
//YESだったら
if(yesno == "yes"){
//取得した値をメッセージボックスで表示する
Browser.msgBox("取得した値は「"+rng+"」です!");
//NOなら
}else{
//取得しない旨を掲載する
Browser.msgBox("値は取得しませんでした");
//A1をアクティブに
sht.getRange(1,1).activate();
}
//ーーーーーここまでーーーーー
}
getDataRange()の戻り値
Range—スプレッドシート内のすべてのデータで構成される範囲
スプレッドシートにデータが存在する範囲を取得するまとめ
GAS×スプレッドシートにデータが存在する範囲を取得するならgetDataRange()
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートでセル範囲をA1形式で指定・選択する
関連記事:【GAS】スプレッドシートで指定範囲をアクティブシートの選択セルに設定する
関連記事:【GAS】スプレッドシートでアクティブな範囲のリストを取得する
関連記事:【GAS】スプレッドシートの選択された範囲を取得する