GASとスプレッドシートを連携してドキュメント操作を自動化する方法
最近、GASを使ってスプレッドシートとドキュメントを連携させたいんだけど、何から手をつけたらいいのか…

猫男

catman
catmanがGASを使ったスプレッドシートとドキュメントの連携の基本を教えてやろう!
GASを使ったスプレッドシートとドキュメントの基本操作
GASはGoogleの各種サービスを自動化するために用いるスクリプト言語だ。スプレッドシートやドキュメントとの連携には必須だ。
スプレッドシートからデータを取得し、ドキュメントに出力する基本操作を学ぶことで、効率的に作業を進められる。
スプレッドシートからデータを取得する
まずはスプレッドシートから必要な情報を取得する方法だ。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getRange('A1:B10').getValues();
SpreadsheetApp.getActiveSpreadsheet()で現在開いているスプレッドシートを取得する。
getActiveSheet()でアクティブなシートを取得し、getRange(‘A1:B10’)で特定の範囲を指定してデータを得る。
ドキュメントにデータを出力する
次に、取得したデータをドキュメントに出力する方法だ。
var doc = DocumentApp.create('新しいドキュメント');
var body = doc.getBody();
body.appendParagraph('スプレッドシートから取得したデータ:');
data.forEach(function(row) {
body.appendParagraph(row.join(', '));
});
DocumentApp.create(‘新しいドキュメント’)で新しいドキュメントを作成する。
getBody()でドキュメントのボディを取得し、データはappendParagraph()で文字列として追加する。
練習問題
スプレッドシートのセル範囲を「C1:C5」に変更し、取得したデータを各値で3倍し、ドキュメントの見出しを「HEADING2」にするスクリプトを作成せよ。
解答・解説
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getRange('C1:C5').getValues();
var result = data.map(function(row) {
return row[0] * 3;
});
var doc = DocumentApp.create('新しいフォーマットしたドキュメント');
var body = doc.getBody();
var title = body.appendParagraph('タイトル');
title.setHeading(DocumentApp.ParagraphHeading.HEADING2);
result.forEach(function(value) {
var text = body.appendParagraph('データ: ' + value);
text.setBold(true);
});
セル範囲をgetRange(‘C1:C5’)で指定し、取得した値を3倍にした結果をmap()で表現。
appendParagraph()で各結果をドキュメントに追加し、setHeading()で見出しをHEADING2に変更。
さらに、setBold()を使用して追加した段落の太字化を行っている。
GASでスプレッドシートとドキュメントを連携できる!自動化ってすごいんだなぁ。

猫男

catman
その通りだ!この技を極めれば、さらに効率の良い仕事ができるようになるぞ!