1

スプレッドシート データを使用google apps scriptして Google カレンダーでイベントを作成するスプレッドシート用のアドオンを作成するために使用しています。テストアドオンからコードを実行した場合を除いて、すべてが機能しています。何らかの理由でイベントがカレンダーに追加されません。しかし、スクリプトからコードを実行すると、問題なく動作します。ここに私のコードがあります、

function createEvent(date, start_time, end_time, event_title)
{
  var dateCol = 0;
  var startCol = 0;
  var endCol = 0;
  var titleCol=0;

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getActiveSheet();
  var lr = dataSheet.getLastRow()-1;
  var lc = dataSheet.getLastColumn();

  var rng = dataSheet.getRange(1, 1, 1, lc).getValues();

  // This will match the column corresponsing to our selected value in dropdown from html sidebar.
  for (var i=0; i < rng[0].length; i++)
  {
    if (date == rng[0][i]) {
      dateCol = i;
    }
    if (start_time == rng[0][i]) {
      startCol = i;
    }
    if (end_time == rng[0][i]) {
      endCol = i;
    }
    if (event_title == rng[0][i]) {
      titleCol = i;
    }
  }

  // This part handles the creating of an event in calendar
  var getUser = Session.getEffectiveUser().getUserLoginId();
  var getCal = CalendarApp.getCalendarById(getUser);

  var data_rng = dataSheet.getRange(2, 1, lr, lc).getValues();

  for (var j=0; j < data_rng.length; j++)
  {
    var getDate = new Date(data_rng[j][dateCol]);
    var getDate2 = new Date(data_rng[j][dateCol]);

    var getStart =new Date(data_rng[j][startCol]);
    var getEnd = new Date(data_rng[j][endCol]);

    getDate.setHours(getStart.getHours());
    getDate.setMinutes(getStart.getMinutes());

    getDate2.setHours(getEnd.getHours());
    getDate2.setMinutes(getEnd.getMinutes());

    var title = data_rng[j][titleCol];
    getCal.createEvent(title, getDate, getDate2);
  }
}

アドオンで動作させるために何か他のことをする必要がありますか? CalendarApp をアドオンで動作させるにはどうすればよいですか?

4

0 に答える 0