メイン画像

スプレッドシートで作成した予定表をカレンダーに一括表示

スプレッドシートで作成した予定表をカレンダーに一括表示


まずはGoogleスプレッドシートでスケジュールを作成しましょう。
自分の表でカスタマイズしてやってみてください。

スケジュール表の例

上記のスケジュール表の例のようにスケジュール表を作成しましょう。
そして、水色のタイトルをGAS(Google Apps Script
で読み込みます。

GAS(Google Apps Script)⇒Googleの提供するサービスと連携して利用するためのプログラミング言語



GASを使用するために、スクリプトエディタを開きます。
拡張機能タブから、Apps Scriptをクリックするとスクリプトエディタが開きます。

スクリプトエディタ

このスクリプトエディタに、下記に掲示するコードをコピーして
デフォルトで表示されている1~4行目を削除して貼り付けましょう。

function onOpen() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
 
  //スプレッドシートのメニューにカスタムメニュー「カレンダー連携 > 実行」を作成
  var subMenus = [];
  subMenus.push({
    name: "実行",
    functionName: "createSchedule"  //実行で呼び出す関数を指定
  });
  ss.addMenu("カレンダー連携", subMenus);
}
 
/**
 * 予定を作成する
 */
function createSchedule() {
 
  // 連携するアカウント
  const gAccount = "★★@gmail.com";  // ★★ここに連携するカレンダーのアドレスを入れる
  
  // 読み取り範囲(表の始まり行と終わり列)
  const topRow = 6;
  const lastCol = 9;
 
  // 0始まりで列を指定しておく
  const statusCellNum = 1;
  const dayCellNum = 2;
  const startCellNum = 4;
  const endCellNum = 5;
  const titleCellNum = 6;
  const locationCellNum = 7;
  const descriptionCellNum = 8;
 
  // シートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 
  // 予定の最終行を取得
  var lastRow = sheet.getLastRow();
  
  //予定の一覧を取得
  var contents = sheet.getRange(topRow, 1, sheet.getLastRow(), lastCol).getValues();
 
  // googleカレンダーの取得
  var calender = CalendarApp.getCalendarById(gAccount);
 
  //順に予定を作成(今回は正しい値が来ることを想定)
  for (i = 0; i <= lastRow - topRow; i++) {
 
    //「済」か、空の場合は飛ばす
    var status = contents[i][statusCellNum];
    if (
      status == "済" ||
      status == "済み" ||
      status == "OK" ||
      contents[i][dayCellNum] == ""
    ) {
      continue;
    }
 
    // 値をセット 日時はフォーマットして保持
    var day = new Date(contents[i][dayCellNum]);
    var startTime = contents[i][startCellNum];
    var endTime = contents[i][endCellNum];
    var title = contents[i][titleCellNum];
    // 場所と詳細をセット
    var options = {location: contents[i][locationCellNum], description: contents[i][descriptionCellNum]};
    
    try {
      // 開始終了が無ければ終日で設定
      if (startTime == '' || endTime == '') {
        //予定を作成
        calender.createAllDayEvent(
          title,
          new Date(day),
          options
        );
        
      // 開始終了時間があれば範囲で設定
      } else {
        // 開始日時をフォーマット
        var startDate = new Date(day);
        startDate.setHours(startTime.getHours())
        startDate.setMinutes(startTime.getMinutes());
        // 終了日時をフォーマット
        var endDate = new Date(day);
        endDate.setHours(endTime.getHours())
        endDate.setMinutes(endTime.getMinutes());
        // 予定を作成
        calender.createEvent(
          title,
          startDate,
          endDate,
          options
        );
      }
 
      //無事に予定が作成されたら「済」にする
      sheet.getRange(topRow + i, 2).setValue("済");
 
    // エラーの場合(今回はログ出力のみ)
    } catch(e) {
      Logger.log(e);
    }
    
  }
  // ブラウザへ完了通知
  Browser.msgBox("完了");
}


※ //の付いている文は、コードの説明です。

コピペしたコードの、20行目 "★★@gmail.com"
この★★の部分を自分のGmailアカウントに直しましょう。



プロジェクト名の変更や削除は、3点アイコンから行えます。
22行23行目は、スケジュール表の読み取り範囲を指定しています。
今回のスケジュール表の例では、6行目から始まり、列のカテゴリが9列目までなので
このように記述します。列が増える場合は、23行目の数字を替えましょう。

27行目から33行目までが、スケジュール表の青く塗りつぶされた項目を読み込む記述です。
記述が完了したら、上に並んでいるアイコンから保存してから実行しましょう。



実行すると、このように権限を確認して承認する必要があります。



自分のGmailアカウントをクリックします。



このような表示が出ますので、詳細をクリックしてプロジェクトに移動をクリックします。
安全でないページと書かれていますが、自分で作成したスクリプトなので安心してください。


そして、権限を許可するとアカウントが認証されます。



アカウント認証が済んだらスプレッドシートに戻ります。
すると、「カレンダー連携」タブが増えているのでそちらをクリックします。
これで記述したスクリプトが実行されます。



GoogleスプレッドシートとGoogleカレンダーの連携が完了すると、自動的に「」が入力されます。



このように一括で、スケジュール表がカレンダーに表示されました😊

補足👇

Googleスプレッドシートの設定」から「タイムゾーン」を「(GMT+09:00)Tokyo」に変更する。

もうひとつが、Googleカレンダーの設定で右上の⚙アイコンの設定より、
言語と地域
タイムゾーン」を「(GMT+09:00)日本標準時」に変更する。

ソースを変更すれば、項目も増やせたりもするのでいろいろ変更してみてくださいね😊


アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ひでのり さんを応援しませんか?
メッセージを添えてサポートする事ができます。


この記事にコメントをしてみませんか?


私自身「多発性神経炎」を患い、左足が麻痺している身体障害者です。障害があると、仕事を探すにも就職しても様々な制限があります。
さらに、ひとり親で二人の娘を育てていました。その経験から、PCのスキルを高めると、仕事を探すにも就職してからも非常にプラスになります。

現在では障害者雇用求人が確立され、仕事自体はたくさんあります。しかし、現状は厳しい状況です。

障害のある方の中には、人と対面で仕事するのが難しかったり、出社するのが難しいなど様々なことがあります。

ひとり親の方も同様で、子どもを預けなければいけない、子どもの為に自分が頑張らなければいけないなどがあります。

そこで、ExcelやGoogleスプレッドシートが得意であるとか、Webサイトを作れる、Wordpressでブログを作成できるなどのスキルを身に付けられれば

仕事をする、探す上で非常に幅が広がります。

このスキルがあれば、自宅でお仕事も可能になるし、仲間と一緒に運営もできます。
そんな思いから「おさるのパソコン教室」やブログを運営しています。

おすすめの記事