例文を使って繰り返し業務を時短

【GAS】別スプシの該当列全ての値を転記する

GAS

別スプシの該当列全ての値を最終行に転記する

このGASのスクリプトは、指定した別ファイルのシートから該当の列のすべてのセルの値を取得し、スクリプトが実行されたシートの最終行の次の行から順にそれぞれの値を転記するものです。

function copyColumnValues() {
  // 別ファイルのスプレッドシートのIDを指定します
  var spreadsheetId = "スプレットシートID";

  // 別ファイルのスプレッドシートを開きます
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);

  // 別ファイルのシート名を指定します
  var sheetName = "シート名"; // シート名を適切な名前に変更してください

  // 別ファイルの指定したシートを取得します
  var sheet = spreadsheet.getSheetByName(sheetName);

  if (sheet) {
    // 別ファイルの最終行の行番号を取得します
    var lastRow = sheet.getLastRow();

    // 別ファイルの指定した列の範囲を取得します
    var columnRange = sheet.getRange(1, 1, lastRow, 1);

    // 別ファイルの指定した列のすべてのセルの値を取得します
    var columnValues = columnRange.getValues();

    // スクリプトが実行されたシートをアクティブなシートとして取得します
    var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

    // アクティブシートの最終行を取得します
    var activeSheetLastRow = activeSheet.getLastRow();

    // 取得した値をアクティブシートの最終行の次の行から順に転記します
    for (var i = 0; i < columnValues.length; i++) {
      activeSheet.getRange(activeSheetLastRow + 1 + i, 1).setValue(columnValues[i][0]);
    }
  } else {
    Logger.log("指定したシートが見つかりませんでした。");
  }
}

解説

  • copyColumnValues関数が定義されています。
  • spreadsheetId変数には、別ファイルのスプレッドシートのIDが指定されています。このIDは、スプレッドシートのURLから取得できます。
  • SpreadsheetApp.openById(spreadsheetId)を使用して、指定したスプレッドシートを開きます。spreadsheet変数には、開いたスプレッドシートのオブジェクトが格納されます。
  • sheetName変数には、別ファイルのシート名が指定されています。この部分は、転記したいシートの名前に合わせて適切に変更してください。
  • spreadsheet.getSheetByName(sheetName)を使用して、指定したシートを取得します。sheet変数には、取得したシートのオブジェクトが格納されます。
  • if (sheet)の条件分岐により、シートが存在するかどうかを確認します。
  • sheet.getLastRow()を使用して、別ファイルのシートの最終行の行番号を取得します。
  • sheet.getRange(1, 1, lastRow, 1)を使用して、指定した列の範囲を取得します。ここでは、最終行までのすべての行と、1列目(A列)のセルを対象としています。
  • columnRange.getValues()を使用して、指定した列のすべてのセルの値を取得します。取得した値は、columnValues変数に2次元配列として格納されます。
  • SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()を使用して、スクリプトが実行されたシートをアクティブなシートとして取得します。
  • activeSheet.getLastRow()を使用して、アクティブシートの最終行の行番号を取得します。
  • 取得した値をアクティブシートの最終行の次の行から順に転記します。forループを使用して、columnValuesの各要素を取り出し、アクティブシートの該当する行に対応するセルに値を転記します。この際、setValueメソッドを使用してセルに値を設定します。
  • elseブロックでは、指定したシートが見つからなかった場合にエラーメッセージをログに出力します。

コメント

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