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 を返します。
getActiveRangeList()RangeListアクティブなシート内のアクティブな範囲のリストを返します。アクティブな範囲がない場合、null を返します。
getActiveSheet()Sheetスプレッドシート内のアクティブなシートを返します。
getCurrentCell()Rangeアクティブな範囲のいずれかで選択されている現在の(ハイライト表示された)セルを返します。現在のセルがない場合、null を返します。
getNextDataRange(direction)Rangecurrent cellactive range から指定された方向に移動し、現在のセルをカバーしながら next data cell をカバーするように範囲の適切な端がシフトされた調整済み範囲を返します。

詳細なドキュメント

getActiveRange()

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

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

戻る

Range - アクティブな範囲。

承認

このメソッドを使用するスクリプトには、次のスコープの 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 - アクティブな範囲のリスト。

承認

このメソッドを使用するスクリプトには、次のスコープの 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 - 現在のセル。

承認

このメソッドを使用するスクリプトには、次のスコープの 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 です。

承認

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

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