Class Selection

選択

アクティブ シートで現在アクティブな選択内容にアクセスします。選択範囲とは、ユーザーがシート内でハイライト表示したセルのセットです。隣接しない範囲でもかまいません。選択範囲内のセルの 1 つが、ユーザーが現在フォーカスしている現在のセルです。Google スプレッドシートの UI では、現在のセルが濃い枠線でハイライト表示されます。

var activeSheet = SpreadsheetApp.getActiveSheet();
var rangeList = activeSheet.getRangeList(['A1:B4', 'D1:E4']);
rangeList.activate();

var selection = activeSheet.getSelection();
// Current Cell: D1
console.log('Current Cell: ' + selection.getCurrentCell().getA1Notation());
// Active Range: D1:E4
console.log('Active Range: ' + selection.getActiveRange().getA1Notation());
// Active Ranges: A1:B4, D1:E4
var ranges =  selection.getActiveRangeList().getRanges();
for (var i = 0; i < ranges.length; i++) {
  console.log('Active Ranges: ' + ranges[i].getA1Notation());
}
console.log('Active Sheet: ' + selection.getActiveSheet().getName());

Methods

メソッド戻り値の型概要
getActiveRange()Rangeアクティブ シート内の選択した範囲を返します。アクティブ範囲がない場合は null を返します。
getActiveRangeList()RangeListアクティブ シート内のアクティブ範囲のリストを返します。アクティブな範囲がない場合は null を返します。
getActiveSheet()Sheetスプレッドシート内のアクティブなシートを返します。
getCurrentCell()Range有効な範囲のいずれかで選択された現在の(ハイライト表示された)セルを返します。現在のセルがない場合は null を返します。
getNextDataRange(direction)Rangecurrent cellactive range から始めて、指定された方向に移動すると、現在のセルをカバーしながら next data cell をカバーするように範囲の適切な端がずれた、調整された範囲を返します。

詳細なドキュメント

getActiveRange()

アクティブ シート内の選択した範囲を返します。アクティブ範囲がない場合は null を返します。複数の範囲を選択した場合、このメソッドは最後に選択された範囲のみを返します。

var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
var activeRange = selection.getActiveRange();

リターン

Range - アクティブ範囲。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getActiveRangeList()

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

範囲が 1 つ選択された場合は、getActiveRange() 呼び出しとして機能します。

var sheet = SpreadsheetApp.getActiveSheet();
// Returns the list of active ranges.
var activeRangeList = sheet.getActiveRangeList();

リターン

RangeList - 有効な範囲のリスト。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getActiveSheet()

スプレッドシート内のアクティブ シートを返します。

var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
var activeSheet = selection.getActiveSheet();

リターン

Sheet - スプレッドシート内のアクティブ シート。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getCurrentCell()

有効な範囲のいずれかで選択された現在の(ハイライト表示された)セルを返します。現在のセルがない場合は null を返します。

var selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
// Returns the current highlighted cell in the one of the active ranges.
var currentCell = selection.getCurrentCell();

リターン

Range - 現在のセルです。

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getNextDataRange(direction)

current cellactive range から始めて、指定された方向に移動すると、現在のセルをカバーしながら next data cell をカバーするように範囲の適切な端がずれた、調整された範囲を返します。方向の dimension に沿って有効範囲が無制限の場合は、元の有効範囲が返されます。現在のセルまたはアクティブ範囲がない場合は、null が返されます。これは、エディタで範囲を選択して Ctrl+Shift+[arrow key] を押すのと同じです。

// Assume the active spreadsheet is blank.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

// Makes C3 the current cell and C3:E5 the active range.
sheet.getRange('C3:E5').activate();
// Logs 'C1:E3'
console.log(SpreadsheetApp.getSelection()
                          .getNextDataRange(SpreadsheetApp.Direction.UP)
                          .getA1Notation());

パラメータ

名前説明
directionDirection次のデータ領域のエッジセルを検出する方向。

リターン

Range - データセルを含む調整範囲。選択がない場合は null

承認

この方法を使用するスクリプトには、次の 1 つ以上のスコープによる承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets