ずっと使える手作り万年カレンダーを、家庭用プリンターで印刷したい!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

市販のカレンダーは、なんだか事務的。
”家に飾れる”シンプルなカレンダーが欲しい!

そろそろ書店・文具店などで、来年度(2021年)のカレンダーを見かける時期になりました。いろんなタイプのカレンダーを見るのはとても楽しいのですが、我が家で使うとなると・・・

なんだかとても、事務的すぎる😅

家庭で使うには、あまりに事務的・実用向き感が否めないのです😥

  • もう少しシンプルな見た目のもの
  • 落ち着いたデザインのもの(家に飾っても収まりがいいもの)
  • 手頃な値段

がほしいなぁ・・・。

そんな中、Googleスプレッドシートのテンプレート集のことを思い出しました。こんな感じ↓

Googleスプレッドシート公式テンプレート「テンプレート ギャラリー」より

これだったら、シンプルで良いかも!
(テーマの変更で、背景色も変えられます👍)

・・・なのですが、2020年度の年間カレンダーテンプレート、確かリリースされたのは2020年が始まって、だいぶ経ってから・・・だったんですよね。困った😨

だったら自分で作ればいいじゃん!

というわけで

Googleスプレッドシートのカレンダーテンプレートをもとに、カレンダーを作ってみました!

このような見た目になります↓

さらにこのカレンダー、ずっと使えたらとても便利だな!と思って(Googleのリリース待ちしてられない😅)

年度を変更すれば自動でカレンダーが更新される、万年カレンダーにしてみました!

 
  • ダウンロードするだけで使えます※1※2
  • 無料です
 

良かったら、使ってみてくださいね。

※1 祝日表示をするためには、Google Apps Scriptでの設定が必要です。(簡単にできます)
※2 祝日設定をしなくても、祝日表示なしのカレンダーとして使えます。

この万年カレンダーを使ってできること

  • この OhYeah to こ サイトからダウンロードした Googleスプレッドシート製カレンダー に西暦を入力すると、その年の年間カレンダーと月間カレンダーが表示されます。
  • さらに少し手間はかかりますが、 Google Apps Script で設定を追加※3すると、祝日表示も含めたカレンダーが印刷できます※4

ご自宅のプリンターなどで印刷してお使いください。
(A4サイズでの印刷を基本に、作っています)

※3 当年・翌年のみ表示可。
※4 年間カレンダーでの祝日表示は、できません。(月間カレンダーのみ対応)

関連ページ

家族の予定を書き込みたい方は、こちらのカレンダーもありますよ。

全体の流れ

  1. スプレッドシートの準備
    1. OhYeah to こ サイトから、ファイルをダウンロード
    2. (祝日表示させたい方のみ:祝日設定のファイルを作成・実行)
  2. 西暦を入力
  3. データを確認したら、印刷

必要なもの

  • パソコン
    • ファイルのダウンロードや、祝日・印刷の設定に使います
  • Googleアカウント
    • スプレッドシートを利用する際などに、必要です
  • プリンター・印刷用紙
    • スプレッドシートで作ったカレンダーを、印刷します

使うアプリやソフト

  • Googleスプレッドシート
    • Google社製の表計算ソフトです
      • Microsoft Excelとほぼ、変わりありません
  • Google Apps Script
    • 祝日のデータを取得するために必要です
      • 基本、コピペで大丈夫です

Google Apps Script について

公式サイトの説明は以下、

Google Apps Script は JavaScript ベースのスクリプト言語で、ドキュメント、スプレッドシート、スライド、フォームなどの G Suite サービスをカスタマイズ、拡張できます。インストール作業は不要です。ブラウザ内で動作するコードエディタが用意されており、スクリプトは Google のサーバーで実行されます。

Apps Script

ということで、

  • JavaScriptという簡単なプログラミング言語と、かなり似ています
  • Webブラウザ上で動くので、パソコンさえあれば特別に何かを用意する必要はありません
  • Googleが提供しているものなので、Googleドキュメントやスプレッドシート、Gmailなどと連携して、便利に使うこともできます

Google Apps Script、少しでも使えると(読むことができると)とっても便利です。
大人のプログラミングの学習の導入としても、良いんじゃないかな?と思ってますので、この機会にぜひ使ってみてはいかがでしょうか?

注意事項とお願い

私なりに頑張ってこのカレンダーを作成しましたが、Googleの仕様変更等、最新の更新にもれなく対応していくのは難しいです😥

印刷・ご利用になる前に

  • カレンダーの曜日や祝日は正しいか?

など、予め、目視でのご確認をお願いいたします🙇

参考サイト

以下のサイトを参考に作成しました。

以下のサイトで、いつも勉強させてもらっています!

作成手順

まずは、Googleスプレッドシートをダウンロードしてもらうところからスタートします。

これからは、

  • Googleスプレッドシート → スプレッドシート
  • Googleカレンダー → カレンダー
  • Google Apps Script → GAS

のように表記していきます。

カレンダースプレッドシートのコピー

これまでずっと便宜上「ダウンロード」と言ってきましたが、実際に行ってもらうのはダウンロードではなく「ファイルのコピー」となります🙇💦

スプレッドシートの準備

カレンダーの西暦を設定して、印刷するためのスプレッドシートを準備していきます。

スプレッドシートのコピーを作成

まずは以下のファイルを開いて「コピーを作成」してください。
(Googleアカウントにログインしていない方は先に、ログインしておきましょう。画面右上にログインボタンがあります。)

☆注意とお願い

シートを開いて「ダウンロード」を選んでも、以降から使うスプレッドシートをダウンロードすることができません。(閲覧権限のみの表示のため)

  • このスプレッドシートを利用する場合は必ず「コピーを作成」して、ご自身のGoogleドライブ内にコピーファイルを作成してください
  • ファイルを開いたときにファイルのシートに鍵がかかっている場合は、タブ選択→右クリックで、解除を選んでご利用ください
万年カレンダー スプレッドシートファイルの中身

スプレッドシートファイルの中には、以下のようなシートが含まれています。

  • OhYeah 万年カレンダー
    • 年間カレンダー
    • 祝日一覧
    • 1月〜12月の月間カレンダー

「祝日一覧」シートを更新して祝日表示をしたい場合、スプレッドシートとGASの紐付け+設定が必要です。
GASファイルは、上記のコピーに含まれません。(後ほど新規作成します)

祝日一覧の説明

祝日一覧シートは、GASを使ってGoogleの祝日カレンダーから必要な情報を取り出し、表示するためのデータ専用シートになります。

 
  • 2020年・2021年度は予めデータが入っているので、設定をしなくても祝日表示されます。
  • この記事公開日以降に祝日の変更があった場合2022年以降は、設定をしないと月間カレンダーに祝日表示されません。
 

スプレッドシートの設定

特別な設定がなくても西暦を入力するだけでカレンダーが表示されます。

西暦の変更

スプレッドシート → 年間カレンダーシートの右下にある西暦(AA1 に当たる箇所)を選択して、西暦を入力(半角数字で入力)します。

年間カレンダーが表示され、月間カレンダーの方にもデータが反映されますので、確認してください。

祝日設定の必要がない人は、これで終了です。
印刷方法はこちらから →

以下、祝日設定の方法です。

祝日の設定

Google Apps Script ファイルの作成

万年カレンダーがコピーできたら

  1. ツール→スクリプトエディタでGoogle Apps Scriptファイルを作成します
  2. ファイルが開いたら「無題のプロジェクト」→ファイル名を変更。ここでは「年間カレンダー祝日取得」とします
「コード.gs」の中身を作成

まずは以下をコピペしてください。

コード.gs

var SHEET_URL = "https://docs.google.com/spreadsheets/d/**************/edit#gid=********";
var SHEET_NAME = "祝日一覧";

function holiday_main() {
  // 今年の1/1から
  var startDate = new Date();
  startDate.setMonth(0, 1);
  startDate.setHours(0, 0, 0, 0);

  // 来年の12/31まで
  var endDate = new Date();
  endDate.setFullYear(endDate.getFullYear() + 1, 11, 31);
  endDate.setHours(0, 0, 0, 0);  

  var sheet = getholidaysheet();
  var holidays = getHoliday(startDate, endDate);

  var lastRow = sheet.getLastRow();
  var startRow = 1;

  sheet.clearContents();//スプレッドシートのデータを更新

  sheet.getRange(startRow, 1, holidays.length, holidays[0].length).setValues(holidays);
}

/**
 * SHEET_URLで指定したドキュメント内のSHEET_NAMEのシートを取得する
 * SHEET_NAMEのシートが存在しない時は、シートを作成する
 */
function getholidaysheet(){
  var ss = SpreadsheetApp.openByUrl(SHEET_URL);
  var sheet = ss.getSheetByName(SHEET_NAME);

  if(sheet == null) {
    sheet = ss.insertSheet(SHEET_NAME);
  }

  return sheet;
}

/**
 * startDate〜endDateまでの祝日をgoogleカレンダーの「日本の祝日」から取得
 * [日付,祝日名]の多次元配列にした上で返す
 */
function getHoliday(startDate, endDate) {
  var cal = CalendarApp.getCalendarById("ja.japanese#holiday@group.v.calendar.google.com");

  var holidays = cal.getEvents(startDate,endDate);
  var values = [];

  for(var i = 0; i < holidays.length; i++) {
    values[i] = [holidays[i].getStartTime(), holidays[i].getTitle()];
  }

  return values;
}
コード.gsの説明と注意
  • 祝日は、2年分のデータを取得しています。
    • 年をまたぐ際に、必要になります。
  • 以下の部分は、スプレッドシートのアドレスをそのままコピペして貼り付けてください。
    var SHEET_URL = "https://docs.google.com/spreadsheets/d/********************/edit#gid=**********"; 
  • 以下の部分↓の「"祝日一覧"」などは、スプレッドシートのシート名をそのまま書くようにしてください。
    (シート名をオリジナルに変更した場合は、変更後の名前にするよう、注意してください。)
    var SHEET_NAME = "祝日一覧";

動作するか?確認をします

GASファイルが完成したら、一度テストしてみましょう。

コード.gsのテスト

関数(holiday_main)を選択 → 右方向の黒い三角ボタンを押します。

成功していれば、スプレッドシートの「祝日一覧」に祝日が出ているはずです。

GASを実行する際に「 承認が必要です 」という表示が出る場合は、こちらを参考にしてください。
参考:【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために

完成イメージ

GAS実行の設定

毎度GASファイルを開くのは大変なので、時間が来たら自動で関数が実行できるように、設定をしていきます。

トリガーで実行させる
  • トリガーマーク(時計マーク)→ 右下のトリガーを追加をクリック


  • データ取得のトリガーを追加
    • 実行する関数 → holiday_main
    • 実行するデプロイを選択 → Head(変更なし)
    • イベントのソースを選択 → 時間主導型
    • 時間ベースのトリガータイプを選択 → 月ベースのタイマー
    • 日を選択 → 20日(この辺はお好みで)
    • 時刻を選択 → 午前0時~1時(ここもお好みで)
    • エラー通知設定 → 毎日通知を受け取る(変更なし)

のようにして、保存。

これで月1回、20日の午前0時〜1時に自分のカレンダーデータを取る設定ができました。

手動で実行するために

念の為に、手動でも簡単にデータを取得できるようにしておきます。

コピーしたスプレッドシートの右側に

  • 祝日一覧シートを選択 → 黄色の「Get Holiday !」ボタン

がありますか?

スプレッドシートのボタンがない場合
  • 挿入 → 図形描画 → 図形 で、好きなボタンの形を作成


  • テキストボックス → ボタンの中に表示するテキストを入力する(ここではGet Holiday !) → 保存して終了(右上にある緑ボタン) → スプレッドシートの右側に置いておく
実行ボタンの設定

設置した(されていた)ボタンを「右クリック」るすると、ボタン右上に3点マークが出てきます。

  • 3点マークを「左クリック」 → スクリプトを割り当て



    holiday_main と入力して、割り当てます。

大文字と小文字を間違えないように!

割り当てが完了したら、この吹き出しボタンのクリックでも、データ取得することができます。(先程、ファイルで実行ボタンを押したのと同じことができます。便利😉)

スプレッドシート「祝日一覧」の設定は、ここまでです。

印刷について

印刷は、スプレッドシートの印刷ボタンから行いましょう。
印刷したいシートを選んでから、ボタンを押します。

印刷設定

お持ちのプリンターや、印刷したい紙のサイズに合わせて設定を変更してください。

私の設定は(月間カレンダーの場合)、

  • A4サイズ
  • ページの向き → 横向き
  • スケール → 高さに合わせる
  • 余白 → カスタム数値
    • 上:1.5cm
    • 下:2.0cm
    • 左・右:0.6cm
  • 印刷形式 → 配置
    • 水平:左
    • 垂直:上

としています。(右側にメモとして手書きできるよう、余白を持たせてみました)

あとはお好みでどうぞ😊

次へボタンで、次へ

  • ページ → すべて
  • カラー → カラー
  • 詳細設定 → 用紙サイズ → A4サイズ

印刷が確認できたら、おしまいです。

プリンターについて

プリンターは、お手持ちのプリンターで大丈夫です👍
もしも買い替えを考えているのであれば、ブラザープリンターが、お勧めします🖨️

私も使っていますが、

  • 印刷がきれい
  • サポートがしっかりしている
  • 純正インクが(他に比べて)安め
  • インク交換が簡単

です。

  • 年賀状印刷で、写真やさんレベルのクオリティを求める方
  • 家庭のプリンターで写真印刷をしたい方

には多少、物足りないかもしれませんが、

  • 日常のプリントアウト(カレンダー印刷・Webページの印刷などデータの印刷など)
  • インクジェット用紙でのプリント(年賀状をインクジェット紙で出す方など)

で事足りるのであれば、使い勝手が良いブラザープリンター、オススメです。

印刷用紙について

印刷用紙は、普通用紙ももちろんOKですが

どうせならこんな用紙はいかがでしょうか?

ベースの色(用紙の色)を変えるだけで、いつもと違った味のカレンダーを作ることができます。また、月間カレンダーとして使うなら、ある程度の厚みがあるほうが使いやすいですよ。

まとめ

このページでは、GoogleスプレッドシートやGASを使って、万年カレンダーを作成してみました。

祝日表示設定の部分は多少、ややこしく感じるかもしれませんが、その他はほぼ、ファイルのコピーだけで表示できたのではないかな?と思います。

自分好みに色を変更したり・文字サイズを変えたり、カスタマイズして使ってみてください。

その際は、元のスプレッドシート関数を変更しないように注意してください😉

表示がおかしくなった場合

万が一、表示がおかしくなった場合は、再度ファイルのコピーをしてください。(そのほうがたぶん、早いです。)

あとは、GASファイルの設定も忘れずに・・・

それでは!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

Ads