GASで簡単に実装!別のスプレッドシートからデータを取得・転記する方法


GASで別のスプレッドシートからデータを取得する基本
まずは、GASで別のスプレッドシートを開くところから始めよう。
スプレッドシートを開く
GASでは、スプレッドシートのIDを使って特定のスプレッドシートを開くことができる。以下のコードを参照してみてくれ。
var spreadsheetId = 'YOUR_SPREADSHEET_ID';
var sheet = SpreadsheetApp.openById(spreadsheetId).getActiveSheet();
– SpreadsheetApp.openById(ID): 指定したスプレッドシートIDでスプレッドシートを開く。
– getActiveSheet(): 開いたスプレッドシートのアクティブなシートを取得する。

スプレッドシートから値を取得
次に、シートのデータを取得する方法だ。
var dataRange = sheet.getDataRange();
var values = dataRange.getValues();
– getDataRange(): シートの全データ範囲を取得。
– getValues(): データ範囲内の全データを2次元配列として取得する。

GASで別のスプレッドシートに転記する方法
データを転記する時も、GASを駆使すれば簡単さ。
データを転記
コピーしたいデータを別のシートに書き込むコードを紹介する。
var destinationSpreadsheetId = 'DESTINATION_SPREADSHEET_ID';
var destinationSheet = SpreadsheetApp.openById(destinationSpreadsheetId).getActiveSheet();
destinationSheet.getRange(1, 1, values.length, values[0].length).setValues(values);
– getRange(row, column, numRows, numCols): 書き込む範囲を指定。
– setValues(values): 取得したデータを各セルに書き込む。


練習問題: スプレッドシートを跨いでデータ操作をしてみよう
1. 自分のGoogleアカウントのGoogle Drive内にあるスプレッドシートAとスプレッドシートBを準備し、スプレッドシートAのデータをBに転記してみましょう。
2. 上記の記事内のID部分を自分のスプレッドシートIDに差し替えて、スクリプトを完成させよう。
解答・解説
以下はスプレッドシートAからBにデータを転記するスクリプトの例です。
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へデータを転記します。
– sourceSpreadsheetIdとdestinationSpreadsheetIdを準備したスプレッドシートのIDに変更することで、目的の作業を実現できます。
– getDataRange()やsetValues(values)でスプレッドシート間のデータの転送を行っています。