[管理者必見]GoogleスプレッドシートからGoogleカレンダーへ登録する方法
Googleのスプレッドシートで様々な情報を管理できる時代。
より効率よく使いたくありませんか?
例えば飲み会の出欠確認や出費計算など、日付とデータを紐づけて扱いたい時にはGoogleスプレッドシートとGoogleカレンダーの連携ができるととても便利です。
今日はそんな、痒いところに手が届く方法を書いていきます。
事前準備
今回の準備は下記のものです。
- Googleアカウント
たったこれだけですね。
スプレッドシートを作る
まずはスプレッドシートを作成していきましょう。
今回はこんな感じのサンプルを用意しました。
必ずこれである必要はありませんが、あくまでサンプルはこれを使用します。
スクリプトを書く
上記のようにスプレッドシートが用意出来たら 「ツール」 -> 「スクリプト エディタ」 を選択しましょう。
Google Apps Scriptの画面が表示され、下記のようなプログラムが記載されていますが、全部削除します。
1 2 3 4 5 |
function myFunction() { } |
削除が完了したら、下記の命令をコピーしましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
function createEventFromSheet() { // シートを選択 var sheet = SpreadsheetApp.getActiveSheet(); // 行を選択 for(var i = 2; i <= sheet.getLastRow(); i++) { // セルの値を取得 var start = sheet.getRange(i, 1).getValue().toString(); var end = sheet.getRange(i, 2).getValue().toString(); var title = sheet.getRange(i, 3).getDisplayValue().toString(); // タイトルがない場合、終了する if(title.length <= 0) { break; } // 開始と終了の日時を取得 var startTime = new Date(start); var endTime = new Date(end); // オプションを設定 var options = { location: "名古屋市", description: "詳細情報" } // カレンダーを取得 var cal = CalendarApp.getDefaultCalendar(); // カレンダーにイベントを追加 cal.createEvent(title, startTime, endTime, options); } } |
ここまで記載できたら、ツールバーの 「実行」 -> 「関数を実行」 -> 「createEventFromSheet」 を選択します。
この時、モーダルでGoogleのログインを求められることがありますので、その時は登録するカレンダーを持つアカウントでログインしましょう。
うまく実行できれば、カレンダーを表示し、下記のようになっていれば成功です。
ここで大事なポイントは セルの値を取得する命令が複数ある というところでしょうか。
「getValue」で取得すると中身の値が、「getDisplayValue」で取得すると表示されている値が取得されます。
取得するものが異なる時は、改めて見直してみると良いポイントです。
また、その他の命令等については こちらの公式ドキュメント を参照してみてください。
スプレッドシートの変更を検知して自動化する
続いて、スプレッドシートの値が変更された時、自動でカレンダーに反映するようにしてみましょう。
Google Apps Scriptsの画面にあるツールバーから 「編集」 -> 「現在のプロジェクトのトリガー」 を選択します。
G Suite Developer Hubの画面が開いたら、右下にある 「トリガーを追加」 をクリックし、下記のような内容で登録しましょう。
登録が完了したら下記のようにリストが表示されます。
ここまで完了したら、スプレッドシートのスケジュールを追加してみましょう。
追加したデータでカレンダー登録されれば成功です。
ここまで読んでもよく分からない場合
ここまで説明でよくわからない方もいると思います。
そこで、一連の流れを動画にしてみましたので、ご覧になりながらやってみてください。
さいごに
いかがでしょうか?
実はこのプログラムを実行したことがある人ならわかると思いますが、同一のイベントが複数回登録されることがあります。
そういう時はイベントを追加する前に対象のデータを削除する処理を入れておくと解決します。
この記事は最低限のことだけ記載していますので、もっと様々なものを自動化したい場合は、プログラムを作成されてみてはいかがでしょうか?
ではでは。
- おすすめ記事
-
-
のえる2019.01.07
-
Google謹製のFlutterの使い方(1)
のえる2018.12.20
-
POPULAR
のえる
Full-stack Developer