見出し画像

【簡単】Googleカレンダーの予定からシート転記で月次の業務実績表を作成する方法

Googleカレンダーの予定からGoogleスプレッドシートをつかった、月次の業務実績表を作成する方法、流れを解説します。

自分の業務の棚卸し、振り返りなどしたいときなど便利です。


Googleカレンダーの良い点
・作成が簡単
・スプレッドシートと連携できる
Googleスプレッドシートの良い点
・作成が簡単
・Googleカレンダーなどと連携できる
・プログラミングなどもでき、カスタマイズができる

GoogleカレンダーとGoogleスプレッドシート連携、作成の流れ


まず、GoogleアカウントでGoogleにログインします。

Googleカレンダーで連携したいアカウントを選択します。
該当カレンダーの設定をクリックします。

画像1

該当カレンダーの設定をクリックします。カレンダーIDをコピーしておきます。連携で使用します。

画像2

次に、Googleスプレッドシートを新規作成します。

1行目、各列に記載します。
A列 タイトル
B列 開始日時
C列 終了日時
D列 任意(サンプルは、開始と終了の差分、経過時間を関数で計算する列)

リボンメニューの「拡張機能」をクリックし、「Apps Script」をクリックします。

画像3

「Apps Script」が別タブで開かれます。
コード.gsというファイルの詳細が右記に記載されており、サンプルコードで、function myFunction(){}と書かれています。

ここに、カレンダー連携と表作成のコードを上書きします。

画像4

コードは下記です。すべてを元のコードから上書きしてコピペします。

画像5

コードを置いておきます。

const CALENDAR_ID = 'ここにカレンダーIDを記載'; //カレンダーID
function getCalendarEvents() {
 const calendar = CalendarApp.getCalendarById(CALENDAR_ID);  
 const startTime = new Date('2021/12/01 00:00:00'); //カレンダーのどこから取得するか、任意で変更してください
 const endTime = new Date('2021/12/31 23:59:59'); //カレンダーのどこまで取得するか、任意で変更してください
  
 const events = calendar.getEvents(startTime, endTime);

const values = [];
 for(const event of events){
   const record = [
     event.getTitle(),
     event.getStartTime(),
     event.getEndTime()
   ];
   values.push(record);
 }

SpreadsheetApp.getActiveSheet().getRange(2, 1, values.length, values[0].length).setValues(values);

}


コードを記載したら、code.gsというファイル自体を上書きします。
※「Apps Script」のプロジェクト名自体は、下記画像左上の「無名のプロジェクト」となっています。ここも任意で変更しても大丈夫です。

画像6

上書き、「実行」してみます。
まだ連携していないので、下記のように、アラートが出ます。
承認手続きに進みます。「権限を確認」をクリックします。

画像7

Google確認のない状態なので、アラートっぽい画面ですが、自身が作成したので、問題ありません。
「詳細を表示」をクリックし、
「無題のプロジェクト(※プロジェクト名)に移動」をクリックします。

画像8

プロジェクトとアカウントの連携です。情報取得するための許可をする必要があります。
「許可」をクリックします。

画像9

Googleスプレッドシートにコードが「実行」されていれば、下記のように記録されます。
※記録されていない場合、「Apps Script」から再度「実行」してみてください。

画像10

以上で、カレンダー連携と、表作成は完了です。

表の微修正

ここからは、表の微修正です。下記を対応します。

修正点
経過時間を関数計算
・開始、終了日時の表記を時間までの表記に変更

※経過時間の計算、入力は、Apps Scriptでもできますが、こちらのほうが簡単ですので、さくっとやります。


D列に、開始と終了日時から「経過時間」を関数計算します。

=if(C3-B3=1,"",C3-B3)

をサンプルは3行目に記載してます。

各行にコピペしてください。

画像11

経過時間が記載されました。

次に、時間単位に表記を変更します。

画像12

シート、リボンメニュー、「表示形式」から「数字」、「経過時間」をクリックします。

画像13

経過時間に変更されました。

画像14

次に、開始、終了日時の表記を時間まで表記されるように変更します。

経過時間と同じ要領で、

シート、リボンメニュー、「表示形式」から「数字」、「日時」をクリックします。

画像15

以上です。


Web担当業務で現場で使っている、Webの改善と業務効率まわりの記事少しずつ書いていきます。

Web担当の外注依頼を相談したい方
お気軽に相談ください。


自社のWeb改善、Webマーケティングあたりを自分でしたい方
Web担当としての現場スキルをもとに、個別講座も実施しています。


サポートは今後のより良い情報発信に活用させていただきます。