【概要】
GSuiteを用いて、Googleカレンダーから今日の日程を取得し、日報に反映するスクリプトを作成しました。
日報を書く際の、時間削減につながれば幸いです。
GASのスクリプトは、以下の通りです。
メールアドレス部分に、自身のアドレスを設定して使用して下さい。
GAS
function CreateDailyReport() {
// 今日の日付を取得
var today = new Date();
var date = (today.getMonth() + 1) + "/" + 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カレンダーから本日の日程をスプレッドシートに反映できます。
まとめ
間違い・指摘等があればコメントお願いします。