Help us understand the problem. What is going on with this article?

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

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

関連リンク

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした