この2つのスプレッドシートを準備した上で、参加者ごとに領収書を作成するスクリプトを下記のように作成しました。これは、「領収書リスト」のコンテナバインドスクリプトとして作成してください。
function createReceipt() {
var template = SpreadsheetApp.openById('-----スプレッドシートID-----');
var sheet1 = SpreadsheetApp.getActiveSheet();
for(var i = 2; i <= 4; i++) {
//データの作成
var name = sheet1.getRange(i, 1).getValue() + ' '
+ sheet1.getRange(i, 2).getValue(); //姓 名
var description = "但 " + sheet1.getRange(i, 3).getValues()
+ " として上記領収いたしました。"; //品目
var amount = sheet1.getRange(i, 4).getValue(); //金額
//ひな型をコピー
var ssName = '領収書(' + name + ')';
var sheet = template.copy(ssName).getSheetByName('領収書');
//データを転記
sheet.getRange('A4').setValue(name + ' 様');
sheet.getRange('B9').setValue(description);
sheet.getRange('C7').setValue(amount);
}
}
関数「createReceipt」を実行すると、Googleドライブのマイフォルダの中に、3人分のスプレッドシートが作成されます(図3)。
スプレッドシートの1つを開いてみると、「領収書リスト」から必要事項が転記されていることを確認できます(図4)。
一石二鳥で時間に余裕が!――面倒くさい見積書や請求書などの書類を自動作成するマクロとは
「計算式エラーで残業確定……」、GASで入力データのチェックツールを作成
Excelデータの入力不備で計算エラーが発生して家に帰れない!――入力規則よりも簡単なチェックマクロとはCopyright © ITmedia, Inc. All Rights Reserved.