LoginSignup
7
5

More than 3 years have passed since last update.

GoogleAppsScriptで日本の祝日をスプレッドシートに出力する方法

Last updated at Posted at 2019-10-06

GAS初心者の方にもわかりやすいようにスクリプトエディタを開くところから、私なりに頑張ってまとめました。どうぞよろしくおねがいします。

スクリプト実行後のイメージ

image.png

スクリプト作成手順

  1. スプレッドシートを新規作成します。
  2. 作成したスプレッドシートのメニューから ツール -> スクリプトエディタ を選択します。 image.png
  3. myFunctionが定義されたコード.gsのエディタが開きます。 image.png
  4. 「無題のプロジェクト」のままだとスクリプトが保存できないので、プロジェクト名をつけておきます。今回は「日本の祝日テスト」にしました。 image.png
  5. 以下のコードをコード.gsにコピペして保存します。
function myFunction() {
  // 日本の祝日カレンダーを取得
  var calender = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');

  // 2019-01-01 から 2019-12-31までのイベントを取得
  var startDate = new Date(2019, 0, 1, 0);
  var endDate = new Date(2019, 11, 31, 0);
  var events = calender.getEvents(startDate, endDate);

  // スプレッドシートに貼り付け用の配列
  var data = [];
  // ヘッダーを追加
  data.push(['日にち', '祝日名']);

  // 日にちと祝日名の二次元配列を作成
  for (var i = 0; i < events.length; i++) {
   var event = events[i];

   // 1行分のデータを格納する配列
   var row = [];

   // 日にち
   row.push(event.getAllDayStartDate()); 
   // 祝日名
   row.push(event.getTitle());
   data.push(row);
  }

  // 今アクティブなスプレッドシートのシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // シートに貼り付け
  //  getRange(開始行, 開始列, 終了行, 終了列)で範囲指定
  //  setValuesで作った二次元配列を選択範囲に貼り付け
  sheet.getRange(1, 1, data.length, 2).setValues(data);
}

6.▶ボタンを押すとスクリプト実行後のイメージ画像のように出力されます。
image.png

初めてスクリプトを実行する時

スクリプトを初めて実行する時は承認画面が出るので、以下の手順で承認してください。
(2回目からは表示されません。)

  1. 許可を確認 を押下し、自分のアカウントを選択します。 image.png
  2. アカウント選択後に、この画面が出たら、詳細 リンクをクリックします。 image.png
  3. (安全ではないページ)に移動 のリンクをクリックします。 image.png
  4. 許可 ボタンを押下します。 image.png

日本の祝日のカレンダーIDの確認方法

Googleカレンダーのメインメニューを開き、日本の祝日の設定を開きます。
image.png
カレンダーの統合のところに、カレンダーIDがあります。
image.png

関連リンク

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5