2018年7月3日火曜日

Googleカレンダーに予定入力するGAS Script

スプレッドシートの複数の予定データを読み取って、一括してGoogleカレンダーに入力するGAS Script をかいてみました。

大量に予定をカレンダーに追加するとき便利です。
特に、3ヶ月ごとの予定とか繰り返し予定で威力を発揮。

スプレッドシート入力例 (シート名は yotei  )

以下の GAS Script 実行すると、

function CLyotei(){

var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("yotei");
    //"yotei"シートをshへ

var i, yotei, dokode, stnitiji, ednitiji, kinyuusumi, myCal;

 /*以下 yoteiシートの予定、場所、開始日時、終了日時を各変数に格納 */ 

 for(i = 2; i <= sh.getLastRow(); i++) {
   //i=2行目から最終行まで以下の処理を繰り返す

  yotei = sh.getRange(i,2).getValue();
   //i行2列目の予定をyoteiへ
   
  Logger.log(yotei);

  dokode = sh.getRange(i,3).getValue();
   //i行3列目の予定場所をdokodeへ

  Logger.log(dokode);

  stnitiji = sh.getRange(i,6).getValue();
   //i行6列目の開始日時をstnitijiへ

  ednitiji = sh.getRange(i,7).getValue();
   //i行7列目の終了日時をednitijiへ

  kinyuusumi = sh.getRange(i,8).getValue();
   //i行8列目の記入の値をkinyuusumiへ

   if(kinyuusumi == "") {
    //kinyuusumiの値が無記入だったらカレンダー出力
    
    myCal = CalendarApp.getDefaultCalendar();
    // 既定のカレンダーをmyCalへ

     myCal.createEvent(yotei,stnitiji,ednitiji,{location:dokode});
    //createEvent(予定、開始日時、終了日時、オプション 場所)

    sh.getRange(i,8).setValue("記入済");
    //カレンダー入力に「記入済」と入力

   } //if 終わり
   
 } // for 終わり

Browser.msgBox("カレンダーに入力しました"); 
      

} // CLyotei 終わり


カレンダーに予定が追加され、H列に記入済が入力される。


また、毎週の予定で内容が同じならば、下枠内のように入力。

例: A列2行目に 2018/07/10 3行目に 2018/07/17 と入力。 この、2行の日付をドラッグ選択して、右下角の●にカーソルを乗せると十字になるので、ドラッグして必要分コーピーする。 エクセルの操作と同じ。 次に、B列2行目に、予定を入力して同様にしてコピーする。開始時刻と終了時刻も同様。


カレンダーは入力も表示もいまいちなので、アンドロイドアプリのジョルテを使用。

カレンダーと同期できるので、少量の予定はこれで入力し、多いときScriptで一気に入力してます。 

予定確認もジョルテ。


0 件のコメント:

コメントを投稿