皆さんスケジューラーは何を使っていますか?
おそらくGoogleカレンダー使っている人って多いんじゃないでしょうか?
私もGoogleカレンダーヘビーユーザーです。歯医者の予定とか絶対覚えられない!
あとは物忘れがひどいので些細な予定もGoogleカレンダーに入れてアラームが鳴るようにしています。
とても役立つよ👍
で、アラームが鳴るから大丈夫とはいえ、
紙で見たくないですか?
壁に貼りたくなりませんか?
いくらデジタルな世の中と言っても家の中でカレンダー見る時って壁掛けカレンダー見ますよね。
そんな訳で以前はカレンダーにセコセコと今月の予定を書き移していました。
子供の学校の予定とか、さっと見たいんですよ。
でもこのやり方はデメリットがいっぱい。
書き写すの面倒
カレンダーが文字でいっぱいになる
ということで、次に試したのはGoogleカレンダーを印刷して壁に貼ってみました。
でもこれ、すごくそっけないデザインの上、文字も薄いし小さいし見づらい。

じゃあ自分で作るしかないね!
ということで Googleスプレッドシート+GAS (Google Apps Script) で作りました。
アプリ配布
こちらです。
どうぞー!
閲覧権限にしているので、自分のGoogleドライブにコピーして使ってください。
見本
こんな感じで予定を反映できます。

サンプルがそっけなさすぎですみません。
印刷するとこんな感じ。
よくあるフリー素材カレンダーっぽいですよね。

使い方マニュアル
簡単に使い方を説明します。
【事前準備】ファイルを自分のドライブにコピーする
ファイルを開き、メニューから「コピーを作成」を選んで自分のドライブにコピーしてください。
そしてコピーしたファイルを使用してください。

【事前準備】GASの認証
いきなりですが、設定も何もなしで青い「予定反映」ボタンを押してください。

以下の画面が表示されると思います。
(表示されない方はへGO!)

OKをクリック

自分のアカウントを選択してください。

なんだか恐ろしい画面が出ますが大丈夫です。
「詳細」をクリックしてください。

大丈夫です!「予定連携(安全ではないページ)に移動」をクリックしてください。

本当に怪しくない?と心配になるかと思いますが大丈夫です。「許可」をクリック。
やっと準備ができました!
おそらくGmailにセキュリティ通知が届いていると思いますが、そういうものだと思ってください。
表示&印刷したい年月をセット
以下のセルに年月をそれぞれ入力してください。
半角(直接入力)でお願いします。

GoogleカレンダーIDを入力
以下に反映したいカレンダーの「GoogleカレンダーID」を入力してください

GoogleカレンダーIDとは何ぞや?ですが、以下の縦3点をクリック

「設定と共有」を選んでください。
ページ下の方に以下のような項目があります。

カレンダーを1つしか使っていない場合はメールアドレスと同じです。
他にカレンダーを設定している場合は長ーいアドレスが入っていると思います。
こちらをコピーして先ほどのセルに入れて下さい。
「予定反映」ボタンをクリック
こちらのボタンをクリック!

🎉カレンダーに自分の予定が表示されました!
印刷したい場合
印刷したい場合はちょっとコツがいります。
というのは、普通に印刷をすると以下のような画面になると思います。

これはかっこ悪いカレンダーですよね。
Excelだと「印刷範囲の設定」ができるんです。
でも残念ながらGoogleスプレッドシートには無い。
ですので、ここを利用します。

選択したセルの範囲のみ印刷できる設定があるので、これを使いましょう。
ちなみにこのカレンダー、6週表示しているんです。
こういうのができないので。

画面で見る場合は6週でもいいのですが、印刷するときは5週がおすすめです。
なので行方向の選択範囲も気を付けてください。
そして残念なのですが、6週目印刷は諦めてください🙇♀️
小さい表示で6週印刷もできないことはないのですが、バランスが悪すぎて…。
ここはどうしようもできなかったです。
あと、範囲を選択するのちょっと面倒ですよね。
まあそこまでじゃないとは思うのですが。
オマケですが、選択するボタンも作っておきました。

こちらのボタンで選択したのち、印刷画面で以下を選んでください。

カレンダー祝日表示について
できるだけ普通のカレンダーに近づけたかったので、祝日も入っています。で、数字は赤字。
でも祝日の名前だけ赤字にできませんでした🙇♀️
あ、というかできないだろうと思って試してみません。できるのかな?

エラー対策
GASはプログラミングなので、エラーが出ることもあります。
私が遭遇したエラーがあったので、それだけ書いておきます。
GASを実行しようとすると、以下のエラーが順番に出ます。



これ、今回のアプリじゃなく新規作成のスプレッドシートでも出ました。
原因はこちらでした。

ブラウザのアカウントとGoogleドライブのアカウントが異なる場合に出ました。
そういうこともあるのねー。という感じです。
オマケ・どうやって作ったか
今回GASで作っていますが、私GASに詳しくありません。
こんなコードで動いています。

もちろんあれですあれ。
ChatGPT。
実はお仕事でもGASツールを作ったことがありますが、やはりChatGPTを使いました。
その時はもうちょっと複雑な操作だったので一筋縄ではいかなかったのですが、今回のアプリぐらいならすんなり作れました。
でもあまりプロンプトに詳しいわけではないので、最初のプロンプトはこれ。
googleスプレッドシートとgoogleカレンダーを連携したいです。
例えばgoogleスプレッドシートのA4のセルにgoogleカレンダーの2023-12-02の予定を反映したいときはどうすればいいですか?
プロンプトと言えないだろ!のツッコミ、ごもっともです。
他にはこんな感じ。
ありがとうございます。できました!
これを一般的にして、「日付のあるセルの一つ下のセルに、その日付のイベントを表示する」というコードにしたいです。
どのようなスクリプトを書けばいいですか?
ありがとうございます!できました!
もう1つ質問です。
日付のあるセルの下のセルに予定を入力する前に、以前のものが残っている場合があるので、まずセルの中身を消去してから書き込むようにしたいです。
また、予定がない場合もセルの中身を消去したいです。
できますか?
「ありがとうございます」はデフォルトです😁
一応敬意を表してね。
とにかくこんな適当プロンプトの繰り返しでアプリができちゃうんですよね。
でもセルに値が入っていない場合の処理(バリデーションチェック)を作らなきゃ、とかはやはり人間の介入が必要でしょうか。
プロンプトによってはここまでやってくれるかもしれない?
あとがき
ここまで読んでいただいてありがとうございます!
こちら趣味で作ったものなので、それほどガッツリ管理しなきゃ、という扱いではないのです。
なので不具合があった場合はお知らせいただけると助かります。
お問い合わせページ、またはX(旧ツイッター)からご連絡ください。