Class Selection

選択

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

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

const 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
const ranges = selection.getActiveRangeList().getRanges();
for (let i = 0; i < ranges.length; i++) {
  console.log(`Active Ranges: ${ranges[i].getA1Notation()}`);
}
console.log(`Active Sheet: ${selection.getActiveSheet().getName()}`);

メソッド

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

詳細なドキュメント

getActiveRange()

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

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

戻る

Range|null - アクティブな範囲。

承認

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

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

getActiveRangeList()

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

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

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

戻る

RangeList|null - アクティブな範囲のリスト。

承認

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

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

getActiveSheet()

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

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

戻る

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

承認

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

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

getCurrentCell()

アクティブな範囲のいずれかで選択されている現在の(ハイライト表示されている)セルを返します。現在のセルがない場合は null を返します。

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

戻る

Range|null - 現在のセル。

承認

このメソッドを使用するスクリプトには、次の 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.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const 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 - データセルを含む調整された範囲。選択がない場合は null

承認

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

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