Edited at

【GAS】日報の自動作成

【概要】

GSuiteを用いて、Googleカレンダーから今日の日程を取得し、日報に反映するスクリプトを作成しました。

日報を書く際の、時間削減につながれば幸いです。

image.png

https://docs.google.com/spreadsheets/d/e/2PACX-1vR9wSCq08bpSfhR19YZ02pH89YEbf65TVIXtQcbaVgwM71z8bKw1Htm9zenpMJURbqeXC2L3oQZkshU/pubhtml?gid=0&single=true

GASのスクリプトは、以下の通りです。

メールアドレス部分に、自身のアドレスを設定して使用して下さい。


GAS

function CreateDailyReport() {

// 今日の日付を取得
var today = new Date();
var date = today.getMonth() + "/" + today.getDate()

// tempのシートを指定
var tempSheet = SpreadsheetApp.getActive().getSheetByName('temp');
    // tempのシートをactiveシートに設定
SpreadsheetApp.setActiveSheet(tempSheet);
// tempシートの複製を作成
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(date);
// 新規作成したシートを指定
var newSheet = SpreadsheetApp.getActive().getSheetByName(date);
// 新規作成したシートをactiveシートに設定
SpreadsheetApp.setActiveSheet(newSheet);
// activeなシートを取得
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
// 新規作成したシートを一番左に移動
activeSheet.moveActiveSheet(0);

// カレンダーから情報を取得
var cal = CalendarApp.getCalendarById('xxxxxxxx@gmail.com');// 自分のメールアドレスを指定
var events = cal.getEventsForDay(today); // 本日の日付を指定

for
(var i=0; i<events.length; i++){ // 繰り返す回数は予定の個数分
activeSheet.getRange('A'+(i+3)).setValue(events[i].getStartTime());
activeSheet.getRange('B'+(i+3)).setValue(events[i].getEndTime());
activeSheet.getRange('C'+(i+3)).setValue(events[i].getTitle());
}
}

// 関数を実行するメニューを追加
function addMenu() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('GAS');
menu.addItem('日報を作成', 'CreateDailyReport');
menu.addToUi();
}


日報の作成ボタンを指定することで、Googleカレンダーから本日の日程をスプレッドシートに反映できます。

image.png


まとめ

間違い・指摘等があればコメントお願いします。