基本的なアプローチは、スプレッドシートの現在の行数を特定し、その後に新しい行を追加することです。以下に、そのための簡単なスクリプトを示します。

  1. 末尾に行を追加する(insertRowAfter)
  2. シート名を指定する
  3. 末尾に行を追加する(appendRow)
  4. カスタムメニューを追加する
  5. まとめ

末尾に行を追加する(insertRowAfter)

スプレッドシートの最後に新しい行を追加します。

function addRowToEnd() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // アクティブなシートを取得
  var lastRow = sheet.getLastRow(); // 既存の最後の行を取得
  sheet.insertRowAfter(lastRow); // 最後の行の後に新しい行を追加
  // さらにデータを追加する場合は、ここにコードを追加します。例: sheet.getRange(lastRow + 1, 1).setValue("新しいデータ");
}

この関数を実行すると、アクティブなスプレッドシートの末尾に新しい行が追加されます。必要に応じて、新しい行にデータを入力するコードを追加することができます。

シート名を指定する

シート名を指定して操作する場合、SpreadsheetApp オブジェクトの getSheetByName() メソッドを使用します。このメソッドにより、指定した名前のシートオブジェクトを取得でき、その後で行の追加やデータの挿入など、さまざまな操作が可能になります。以下に、シート名を指定して末尾に行を追加する方法を示すスクリプトを示します。

function addRowToEndBySheetName() {
  var sheetName = "シート1"; // 操作したいシートの名前
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在のスプレッドシートを取得
  var sheet = spreadsheet.getSheetByName(sheetName); // 指定した名前のシートを取得

  if (sheet != null) { // シートが存在する場合
    var lastRow = sheet.getLastRow(); // 既存の最後の行を取得
    sheet.insertRowAfter(lastRow); // 最後の行の後に新しい行を追加
    // 必要に応じて、ここにさらにデータを追加するコードを挿入できます。
  } else {
    Logger.log(sheetName + " という名前のシートが見つかりません。");
  }
}

この関数では、まず操作したいシートの名前を sheetName 変数に設定します。getSheetByName() メソッドを使用してそのシートを取得し、シートが存在する場合にのみ行の追加を行います。シートが見つからない場合は、ログにその旨が記録されます。

sheet != nullでシートが存在するかチェックしています。シート名が確実に存在する場合は、条件分岐は不要です。

特定のシート名で操作を行うことで、複数のシートが存在するスプレッドシート内でも、目的のシートに対して正確に行を追加することが可能になります。

末尾に行を追加する(appendRow)

appendRow()メソッドを使用してGoogleスプレッドシートの末尾に新しい行を追加することが可能です。このメソッドは、配列内の各要素を新しい行の各セルに自動的に配置します。