GASとスプレッドシートを連携してドキュメント操作を自動化する方法

最近、GASを使ってスプレッドシートとドキュメントを連携させたいんだけど、何から手をつけたらいいのか…
猫男
猫男
catman
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
catman
その通りだ!この技を極めれば、さらに効率の良い仕事ができるようになるぞ!