GASでスプレッドシートの指定範囲から行数を取得する方法と活用例

Google Apps Script(GAS)を使ってスプレッドシートを操作するとき、選択した範囲の行数を取得する方法として getHeight() メソッドがあるとばい。この記事では getHeight() の基本的な使い方から応用テクニックまで、分かりやすく解説していくけんね!

スポンサーリンク

getHeight() ってなんね?

getHeight() メソッドは、指定したセル範囲の「縦の長さ」、つまり 行数 を取得するためのものばい。例えば、 B2:D4 という範囲を指定した場合、 2行目から4行目までの3行分 を含むけん、戻り値は 3 になるとさ。

const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getRange("B2:D4");
Logger.log(range.getHeight()); // 3 を出力

getHeight() の類似メソッドとの違い

メソッド名取得できる内容主な用途
getHeight()指定範囲の行数範囲のサイズ確認
getWidth()指定範囲の列数横幅の確認
getNumRows()シート全体の行数データがある範囲の取得
getRowHeight()指定行の高さ(ピクセル)行の見た目の調整

getHeight() の基本的な使い方

スプレッドシートの行数を取得する基本的な流れは以下の通りばい!

① シンプルな範囲指定

function sampleGetHeight() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const dataRange = sheet.getRange("A2:C10");
  Logger.log(`選択範囲の行数: ${dataRange.getHeight()}`);
}

このスクリプトを実行すると、 A2:C10 の行数(9行)がログに表示されるとばい!

② データがある範囲の行数を取得する

getLastRow() を使えば、データがある最終行までの行数を取得できるばい。

function dynamicRangeHeight() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const lastRow = sheet.getLastRow();
  const range = sheet.getRange(2, 1, lastRow - 1, 3);
  Logger.log(`データ範囲の行数: ${range.getHeight()}`);
}

この方法なら、 データの増減に対応 できるばい!


getHeight() を応用する!

① 複数データセットの行数を比較

function compareDatasets() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const range2023 = sheet.getRange("A2:A100");
  const range2024 = sheet.getRange("B2:B150");

  const height2023 = range2023.getHeight();
  const height2024 = range2024.getHeight();

  Logger.log(`2023年データ行数: ${height2023}`);
  Logger.log(`2024年データ行数: ${height2024}`);
}

② データの行数に応じてセルの色を変える

function applyConditionalFormatting() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const dataRange = sheet.getDataRange();
  const rowCount = dataRange.getHeight();
  
  if (rowCount > 100) {
    dataRange.setBackground("#FFEBEE"); // 赤っぽい色
  } else {
    dataRange.setBackground("#E8F5E9"); // 緑っぽい色
  }
}

これで、データが100行を超えたら警告色にできるばい!


getHeight() の注意点

① 結合セルがあるときの挙動

セルが結合されとる場合、 結合された全体の行数 が返ってくるばい。例えば、 B2:B4 を1つのセルに結合しとると、 getHeight()3 を返すとさ。

② 空白範囲の扱い

空白の範囲を指定した場合でも、 1行としてカウントされる ことがあるばい。

const emptyRange = sheet.getRange("A1000:B1000");
Logger.log(emptyRange.getHeight()); // 1 が出力される

まとめ

getHeight()スプレッドシートの範囲内の行数を取得する便利なメソッド ばい!

  • getHeight() を使うと、指定範囲の行数が簡単に分かる
  • getLastRow() と組み合わせると データの増減に対応できる
  • 行数に応じて 色を変えたり、データ分析に活用したり できる
  • 結合セルや空白範囲に注意が必要

GAS を使ってスプレッドシートを操作するなら、 getHeight() を活用して 効率的なスクリプト を作っていこうばい!

コメント

タイトルとURLをコピーしました