GAS를 사용하여 스프레드시트에서 Google 캘린더에 일정 등록

개요



GoogleAppsScript를 사용하면 Excel 매크로와 같이 자동 처리를 설정할 수 있습니다.
이번에는 Google AppsScript를 이용하여 스프레드시트 일정 목록에서 자동으로 Google 캘린더에 일정을 등록하는 방법을 설명합니다.

일정 등록을 위한 코드의 전체 이미지



■설정

이번에는 예로 축구 경기 일정을 스프레드 시트로 나열하고 Google 캘린더에 일정을 등록하는 설정으로 코드를 만듭니다.

우선, 일정 일람표를 아래 그림과 같은 느낌으로 작성합니다.


위에서 만든 일정표에 따라 다음과 같이 코드를 작성합니다.

■ 샘플 코드

code.gs
//■スケジュールのカレンダー登録
function CreateSchedule() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var slist = ss.getSheetByName('柏レイソル試合日程');
  var lastrow = slist.getLastRow();

  //予定の一覧部分・カレンダー名・カレンダーIDを取得
  var contents = slist.getRange(4, 1, lastrow, 6).getValues();
  var cnlist = '柏レイソル試合日程';
  var cidlist = 'ここにGoogleカレンダーIDを指定';

  //順に予定を作成
  for (i = 0; i <= lastrow - 4; i++) {

    //登録フラグが「〇」になっていたら登録しない
    if (contents[i][3] == '') {
      continue;
    }

    //必須項目が入力されていない場合、スキップ
    if (contents[i][1] == '') {
      continue;
    }
    if (contents[i][2] == '') {
      continue;
    }
    if (contents[i][4] == '') {
      continue;
    }
    if (contents[i][5] == '') {
      continue;
    }

    //選択されたカレンダーのIDを取得
    var calendar = cidlist;

    //予定のコンテンツを取得
    var title = contents[i][4];
    var startTime = contents[i][1];
    var endTime = contents[i][2];
    var location = contents[i][5];

    //予定を作成
    CalendarApp.getCalendarById(calendar).createEvent(
      title,
      startTime,
      endTime,
      {
        location: location
      }
    );

    //予定が作成されたら登録フラグを「〇」にする
    slist.getRange(i + 4, 4).setValue('');
  }
}


내용의 해설



먼저 아래에서 스프레드시트의 어느 시트인지, 목록이 시트의 어느 부분인지, 등록처의 캘린더는 무엇인지를 설정합니다.

code.gs
  //開いているスプレッドシートの中のどのシートなのか、どの行までなのかを指定
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var slist = ss.getSheetByName('柏レイソル試合日程');
  var lastrow = slist.getLastRow();

  //予定の一覧部分・カレンダー名・カレンダーIDを取得
  var contents = slist.getRange(4, 1, lastrow, 6).getValues();
  var cnlist = 'テスト用';
  var cidlist = 'ここにGoogleカレンダーIDを指定';

필요한 정보의 설정이 완료되면, 반복문으로 등록할 예정을 작성해 갑니다.
등록 플래그나 필수 항목에 대해서는 필요에 따라 작성해 주시면 좋겠습니다.

마지막으로 아래와 같이 제목, 시작일시/종료일시, 위치 지정을 정의하고 .createEvent 안에 지정하여 일정정보를 Google 캘린더에 등록합니다.

code.gs
    //選択されたカレンダーのIDを取得
    var calendar = cidlist;

    //予定のコンテンツを取得
    var title = contents[i][4];
    var startTime = contents[i][1];
    var endTime = contents[i][2];
    var location = contents[i][5];

    //予定を作成
    CalendarApp.getCalendarById(calendar).createEvent(
      title,
      startTime,
      endTime,
      {
        location: location
      }
    );

코드를 실행하여 아래 그림과 같이 지정한 캘린더에 일정을 등록할 수 있었습니다.


대량의 예정을 등록할 때, 하나하나 손으로 등록해 가는 것은 귀찮다고 생각하므로, 꼭 GAS로 코드를 짜서 스케줄 등록해 보는 것은 어떻습니까.

좋은 웹페이지 즐겨찾기