【GAS入門】別のスプレッドシートからデータを取得して転記する方法

うーん、GASを使って別のスプレッドシートからデータを取得したりコピーしたりする方法が知りたいなぁ…。どうやればいいんだろう?
猫男
猫男
catman
catman
それなら、catmanにおまかせ!GASを使ってスプレッドシート間でデータを操作するのは思ったより簡単なことなんだ。

 

GASで別のスプレッドシートからデータを取得して転記する方法

GASでは、スプレッドシートIDを指定することで、別のスプレッドシートを開き、その中のデータを取得できます。

さらに、取得したデータを現在のスプレッドシートに転記することもできるのです。

 

スプレッドシート 転記 別シート

 

function importDataFromAnotherSpreadsheet() {
  var sourceSpreadsheetId = 'コピー元のスプレッドシートID';
  var sourceSheetName = 'シート1';

  var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var sourceSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetId);
  var sourceSheet = sourceSpreadsheet.getSheetByName(sourceSheetName);

  var values = sourceSheet.getDataRange().getValues();

  targetSheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}

このコードを実行すると、指定した別のスプレッドシートのデータを取得し、現在開いているスプレッドシートに転記できるはずです。

  • SpreadsheetApp.openById():スプレッドシートIDを指定して別のスプレッドシートを開く
  • getSheetByName():指定した名前のシートを取得する
  • getDataRange():データが入力されている範囲を取得する
  • getValues():範囲内の値を2次元配列で取得する
  • setValues():取得した値を別のシートに書き込む

 

これならデータを簡単にコピーして別のスプレッドシートに転記できるんだね!2つのシートを両方ともスプレッドシートIDで指定したいならどうする?
猫男
猫男
catman
catman
オッケー。次はこれを活用してみるといい。

 


function transferData() {
  var sourceSpreadsheetId = 'SOURCE_SPREADSHEET_ID'; // スプレッドシートAのID
  var sourceSheet = SpreadsheetApp.openById(sourceSpreadsheetId).getActiveSheet();
  
  var destinationSpreadsheetId = 'DESTINATION_SPREADSHEET_ID'; // スプレッドシートBのID
  var destinationSheet = SpreadsheetApp.openById(destinationSpreadsheetId).getActiveSheet();
  
  var values = sourceSheet.getDataRange().getValues(); // データの取得
  destinationSheet.getRange(1, 1, values.length, values[0].length).setValues(values); // データの書き込み
}

 

– このスクリプトはtransferDataという関数で、スプレッドシートAからBへデータを転記します。
sourceSpreadsheetIddestinationSpreadsheetIdを準備したスプレッドシートのIDに変更することで実現できます。
getDataRange()setValues(values)でスプレッドシート間のデータの転送を行っています。

 

ありがとう!なんだかいけそうな気がする
猫男
猫男
catman
catman
ふふふ。その調子だ

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。