今日のブログは掲題シリーズの2回目、自作カレンダーの完全自動化の課題で核心の日付の下に祝日や暦の文字列を自動挿入する挑戦についてです。何ぶん、完全自動化で唯一、やることは開いたExcelファイルで右の画像のように、左上のセルに作成したい年を入力するだけで12カ月のカレンダーを作ることにあります。その中で、祝日などの特定日のセルには日付の下に文字列を入れることを今回のメーンテーマにしています。従来の方法は日付と同じセルの中で改行して2行目に文字列を手動で入力していました。これを自動化するには、同じセルの中で2行を処理することはできないので、文字列の行を新たに挿入することにしました。後は上の画像の例の通り、1月であれば1を「元日」、7を「七草の日」..、とカレンダー日付の特定日の数値を見つけてそれに対応し新たに追加した行の対象セルに文字を挿入することです。こうして出来上がった例を以下に示します。
上の画像の左、2016年は成人の日の11日が「鏡開き」と一致したもので、ちょっと工夫して2つの文字列を1つのセルに入れることができました。残念なのは「鏡開き」の文字だけ黒にしたかったのですが、祝日の文字列はセル内の色が赤で統一となっています。次に上の右画像は2017年の例で、2日が「振替休日」になっているのが分かります。最後に苦労したのが、その月が何週あるかで罫線を自動で調整することです。上左が6週分、右が5週分で罫線がそれぞれに見合って引かれるようにしました。このロジックはExcelの「条件付き書式」で、6週目の日付欄が空欄であれば5週目の最下行を実線の罫線で綴じ、空欄でなければ6週目にも罫線を引くように設定しました。かなり、アクロバチックながら何とかものになりました。これで、自動化作戦もかなり進みました。
2018myカレンダー大作戦(その2)
カテゴリー: IT/PC/HP関連 パーマリンク