【GAS】スプレッドシートにまとめたスケジュールを一気に特定のGoogleカレンダーに出力する

スプレッドシートのまとめたスケジュールを特定のGoogleカレンダーに出力したい!!

はじめに

この記事はこの記事で紹介したツールを応用したものになります。まだご覧になっていない方はまずこちらをご覧ください。

【GAS】スプレッドシートにまとめたスケジュールを一気にGoogleカレンダーに変換する

スプレッドシートに書いた年間の日程をカレンダーに出力したい! はじめに 学校現場でも、エクセルに予定をまとめて他の先生に共有している人も多いのでは無いでしょうか? 私が聞くところによると、表にまとめたものを手書きで[…]

今回は、Googleカレンダーの『マイカレンダー』をといった特定のカレンダーにスプレッドシートから出力できるようにしました!

設定や使い方などをプログラミング無しで紹介していますので、ぜひご覧ください!

準備

今回は次の準備をしてください。

  • 使うブラウザはGoogle Chrome
  • Google アカウントを作成
  • ネットサーフィンができるPC

スプレッドシートのダウンロード

今回、私が作成したプログラムが入っているスプレッドシートをダウンロードしていただきます!!

ボタンをクリックすると、『コピーを作成』という項目があると思いますので、そちらをクリックしてください!!

カレンダー選択式登録シートの使い方

基本的な使い方についてはこちらの記事をご覧ください!!

【GAS】スプレッドシートにまとめたスケジュールを一気にGoogleカレンダーに変換する

スプレッドシートに書いた年間の日程をカレンダーに出力したい! はじめに 学校現場でも、エクセルに予定をまとめて他の先生に共有している人も多いのでは無いでしょうか? 私が聞くところによると、表にまとめたものを手書きで[…]

今回は新しく作成したツールの変更点を主に説明させていただきます!

マイカレンダーを作成する

Googleカレンダーを開いてください。

右上の歯車マークをクリックしてください。

プルダウンリストの中の『設定』をクリックしてください。

ページが切り替わった後にページ左側の『カレンダーを追加』をクリックしてください。

プルダウンリストの中の『新しいカレンダーを作成』をクリックしてください。

新しく作成するカレンダーの名前を入力してください。私は今回の場合は「sample」としました。

マイカレンダーに登録した名前のカレンダー(私の場合はsample)が追加されているので確認してください。

スプレッドシートを使って特定のカレンダーに出力する

ダウンロードしたスプレッドシートに戻ってください。

スプレッドシートにテストとして日程を入力します。

日程の入力が完了したら『出力』ボタンをクリックしてください。

こちらを初めてクリックする場合に生じる認証や、シートの使い方については、下記の記事をご覧ください。

【GAS】スプレッドシートにまとめたスケジュールを一気にGoogleカレンダーに変換する

スプレッドシートに書いた年間の日程をカレンダーに出力したい! はじめに 学校現場でも、エクセルに予定をまとめて他の先生に共有している人も多いのでは無いでしょうか? 私が聞くところによると、表にまとめたものを手書きで[…]

プログラムの実行が成功すると、テキストボックスが表示されるので、こちらに登録したいカレンダーの名前を入力してください。

今回、私の場合は「sample」を入力して『OK』ボタンをクリックします。

少しの間、待機すると、『カレンダー名「○○○」に日程を出力しました。』と表示されるので、『OK』ボタンを押しましょう。

Googleカレンダーを開いて、日程を確認すると、先ほど入力した特定のカレンダー(私の場合は「sample」)でスケジュールが登録されていることが確認できますね。

今回のツール紹介はこれで以上になります。

お疲れ様でした!

今回は以前紹介した下記のツールを応用してみました。今回のツールの方ができることが多く、良さそうに見えます。
しかし、実際に使ってみると、入力作業が手間であったりと、一長一短である感じております。

【GAS】スプレッドシートにまとめたスケジュールを一気にGoogleカレンダーに変換する

スプレッドシートに書いた年間の日程をカレンダーに出力したい! はじめに 学校現場でも、エクセルに予定をまとめて他の先生に共有している人も多いのでは無いでしょうか? 私が聞くところによると、表にまとめたものを手書きで[…]

今回のツールを用いることで、共有しているカレンダー自体にスケジュールを登録もできますので、ぜひお使いいただけたらと思います。

今回をきっかけにGAS(Google Apps Script)を勉強していただけたらと思います。

今後もこのような情報を発信していきますので、ぜひお気に入り登録お願いします!!!

また、こういったツールが欲しい!!といったことがあれば、ぜひお知らせいただけたらと思います!!

※プログラムにミスなどがあれば、コメントや問い合わせなどで教えていただけたらと思います。

おまけ

今回は前回作成したプログラムから少ししか変更を行っておりません。

勉強をされる方は、前回の記事からの変更点を探して、動作の変わり方を確認してみるとより理解が深まるでしょう。

function Convert2Calender() {
// カレンダー名をメッセージボックスから取得する
let CalendarName = Browser.inputBox("登録したいカレンダーの名前を入力してください\\n(空白の場合はデフォルトカレンダーになります)");
// 現在開いているシートを取得する
const ActiveSheet = SpreadsheetApp.getActiveSheet();
// 現在開いているシートの月を取得する
const ActiveMonth = ActiveSheet.getName().replace("月","");
// 現在開いているシートのデータを二次元配列で取得する
let SheetData = ActiveSheet.getDataRange().getValues();
// 年度(1行A列のデータ)を取得する
let TargetYear = SheetData[0][0];
// カレンダーオブジェクト格納変数を宣言
let Calendar;
if(CalendarName == ""){
// カレンダー名を指定されていなければ、デフォルトカレンダーを取得
Calendar = CalendarApp.getDefaultCalendar();
}else{
// カレンダー名を指定されていれば、そのカレンダーを取得
Calendar = CalendarApp.getOwnedCalendarsByName(CalendarName)[0];
}
if(Calendar==null){
// カレンダーが取得できなかった場合の処理
Browser.msgBox("カレンダー名「"+CalendarName+"」が見つかりませんでした。\\n正しい名前を入力し直してください。\\n処理を終了します。");
// スクリプトの終了処理
return;
}
// カレンダーのタイムゾーンの設定
Calendar.setTimeZone("Asia/Tokyo");
// 日程情報を検索していく処理
for(let i = 1 ; i < SheetData.length ; i++){
for(let j = 2 ; j < SheetData[i].length ; j+=3){
if(SheetData[i][j] != ""){
// 予定があった場合に、開始時間を参照して予定を作成する
Calendar.createEvent(SheetData[i][j],
new Date(TargetYear+"/"+ActiveMonth+"/"+SheetData[i][0]+" "+SheetData[i][j+1]),
new Date(TargetYear+"/"+ActiveMonth+"/"+SheetData[i][0]+" "+SheetData[i][j+2]));
}
}
}
// 処理完了表示
Browser.msgBox("カレンダー名「"+Calendar.getName()+"」に日程を出力しました。");
}