LoginSignup
10
7

More than 3 years have passed since last update.

【GAS】日報の自動作成

Last updated at Posted at 2019-02-10

【概要】
GSuiteを用いて、Googleカレンダーから今日の日程を取得し、日報に反映するスクリプトを作成しました。
日報を書く際の、時間削減につながれば幸いです。

image.png

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カレンダーから本日の日程をスプレッドシートに反映できます。

image.png

まとめ

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

10
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7