最近の投稿

スポンサーリンク

GoogleAppsScript

コピペで使える! GoogleAppsScriptで日本の祝日を取得すれば営業日判定にもつかえるよ

WBSを作ったり、カレンダーを作ったりする際に地味に面倒なのが祝日考慮です。

曜日については土日を休み判定すれば機械的にスケジュールが作れますが、

祝日は自分で調べて手入力だとイケてない。

GoogleAppsScriptでは日本の祝日カレンダーから取得できます。

コピペで使える祝日取得処理

スプレッドシート側の準備

C2に取得開始日、E2に取得終了日を入力して、GASをじっこうすると、祝日一覧が取得できます。

 

// スプレッドシートにメニューを追加する
function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "祝日取得",
    functionName : "getJpHolyiday"
  }];
  sheet.addMenu("GoogleAppsScript", entries);
};

function getJpHolyiday() {
  
  //日本の祝日カレンダーを取得
  //アメリカ
 //ja.usa#holiday@group.v.calendar.google.com
 //中国
 //ja.china#holiday@group.v.calendar.google.com
 //台湾
 //ja.taiwan#holiday@group.v.calendar.google.com
  var JP_HOLIDAY_CALENDAR = 'ja.japanese#holiday@group.v.calendar.google.com'

  // シート名
  var SHEET_NAME = 'schedule';
  //開始位置
  var RANGE = 5;
  // フォーマット
  var FORMAT = 'yyyy/mm/dd';
  
  // シート情報を取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  sheet.getRange(5, 2, 300, 2).clearContent();
  sheet.getRange(5, 8, 300, 2).clearContent();
  
  // カレンダー情報を取得
  var jp_calender = CalendarApp.getCalendarById(JP_HOLIDAY_CALENDAR);
  
  // 当日の予定を取得
  var startDate = new Date(sheet.getRange("C2").getValues());
  var endDate = new Date(sheet.getRange("E2").getValues());
  
  var jp_schedules = jp_calender.getEvents(startDate, endDate);
  
  var tmpDate = startDate;
  
  var cnt = 0;
  
  // 祝日を繰り返し出力する
  for(var index = 0; index < jp_schedules.length; index++) {
  
    var range = RANGE + index;
    
    // 日付を出力
    sheet.getRange(range, 2).setValue(jp_schedules[index].getStartTime()).setNumberFormat(FORMAT);
    
    // 予定名を出力
    sheet.getRange(range, 3).setValue(jp_schedules[index].getTitle());
  }
}

最近の投稿

スポンサーリンク

-GoogleAppsScript
-

© 2024 ONE HUMAN UNIT Powered by AFFINGER5