見出し画像

横型カレンダーの作り方!

今回は、このようなタイプの

カレンダーをExcelで作っていきます^^

Excel上での完成イメージです。
Excelレベルを上げながら便利なツールを作っていきましょう^^


今回使用する関数や機能、ショートカット

DATE関数
WEEKDAY関数
MONTH関数
SUBTOTAL関数
印刷の向き
書式設定の表示形式
テーブル
条件付き書式
(※マクロ)
――――――※ショートカット―――――
Ctrl+矢印‖端まで移動
Ctrl+Shift+矢印‖端まで移動し、選択
Ctrl‖複数選択
Ctrl+C‖コピー
Ctrl+V‖貼り付け
Ctrl+1‖書式設定
Ctrl+T‖テーブル化
Alt▶H▶B▶A‖罫線格子状
Alt▶H▶B▶T‖罫線太線
Alt▶H▶L▶N‖条件付き書式新しいルール
Alt▶H▶H‖背景色
Alt▶H▶FC‖文字色(フォントカラー)

(※より効率よく作るために使ってみましょう!)

上記のものの使い方も説明しながら作り方を紹介します♪

作り方

印刷の向きを横向きにしておきます。

画像のように年と月を入力しましょう。
必ずセルを分けてください!

曜日も入力して、セルの幅を好きなように設定します。
【Ctrl+Space】で列を選択し、
【Shift+矢印】で画像のような範囲選択ができます!

日付が入る一番左上に数式を入力します。
=DATE(年、月、日)
のカレンダーでおなじみDATE関数です。
年と月は事前に入力していたセルを指定します。
このまま、日を「1」にすると…
2024/5/1
となります。
縦型カレンダーならこれでいいのですが、今回は、日曜日を左上にしたいので、数式に手を加えます。

WEEKDAY関数です。
WEEKDAY(日付(シリアル値)、種類)を入力すると、曜日が数字になって出力されます。
シリアル値「2」にすると、月曜が1、火曜が2…と値がでます。

2024/5/1は水曜日なので、WEEKDAY関数の戻り値(出力されるもの)は「3」になります。

実際に2024年4月の最終日曜日は「28日」。
5/1から「-3」をしたら、確かに4/28になりそうですね。
なので、

WEEKDAY(DATE(年、月、1)、2) ▶ 3になる数式(今回は)

DATE(年、月、1-WEEKDAY(DATE(年、月、1)、2))
と先ほどのDATE関数に入れ込む!

見た目を「年月」を消した「日」だけにしたいので、
【Ctrl+1】(またはマウスの右クリック)でセルの書式設定を開き、

d"日"

とユーザー定義で入力。

あとは、最初の日付から+1していくだけ!

【Shift+矢印】で範囲選択、【Ctrl+R】でコピペできると速いですね♪

2週目の日曜日は、前の週の最後(土曜日)からもってきます。

月曜日以降は同じなので、1週目の2日目以降(今回は29日~)を
【Ctrl+Shift+→】で選択し、
【Ctrl+C】でコピーして、
【Ctrl+V】で貼り付け!

3週目以降は2週目と全く同じなので、
2週目をコピーして、3週目、4週目…に貼り付けます。

余計に見えますが、6週目まで必ず作ってください。

罫線をお好みでつけます。
ショトカは、
【Alt▶H▶B▶A】格子状
【Alt▶H▶B▶T】太線

【Ctrl】を押しながら行番号をマウスでクリックして、日付の間の行を複数選択!

現在は、5月なのに4月の28,29,30日や6月の1日以降が表示されているので、消えるようにします。
日付部分の6行を選択して、条件付き書式の新しいルール。
【Alt▶H▶L▶N】

=MONTH(B4)<>$D$2

と入力します。
MONTH関数は指定のセルが日付形式の時、月数のみを表示します。
今回であれば、4月の4、5月の5、6月の6となります。
「B4」と指定することで、指定された範囲のセルそれぞれが「<>D2」のとき、という条件にあてられます。
「<>D2」はD2じゃなかったら…。という条件式です。

好きな色を指定して…

あれ…?

条件付き書式のルールの管理から確認すると、変な数字になっていますね。
B4じゃなくB14と入力していればこんなことにはなりませんでした。
まぁ、ここでB4と直せばOKです。

この対象のセルがいまいちわからない方は、この記事読んでみてください^^


正しく直すと・・・。 

5月じゃないときの日付が、指定の色になりました!
今回は、灰色の文字に灰色の背景なので見えなくなります!

日付がない、予定を書けるような入力欄も同じやり方で灰色にできます。

これで月数の数字を変えれば、十分使えるカレンダーになりました。

「表示」タブの「改ページプレビュー」を押すと印刷範囲のみを囲って見やすくすることができます!


基本形の作成はここまでです!

(ここから下は少し難しくなるので、もう無理かなぁの人はここまででOK!お疲れさまでした♪一番下にデータがあります!)

便利なボタン

カレンダー枠外(横以外)に「月数」のリストを作ります。
順番はお好きにどうぞ。
このリストに【Ctrl+T】で「テーブル」にし、テーブルと違うところに、

=SUBTOTAL(9,テーブル範囲)

と入力します。
これを使うと、非表示の数字は飛ばして、表示されている数値のみで計算することができます。
今回は、月数で1種類しか表示せず、そのままの数字を使いたいので、「SUM関数」と同じ効果の「9」をSUBTOTAL関数で指定しています。

どうしてこんなことをしているか…少しずつ答えが見えてきます。

「テーブルデザイン」タブの左の方に「スライサーの挿入」というボタンがあります。
押すと、フィルター機能をボタン化したものが使えるようになります。

「スライサー」タブの右の方で「列数:」を好きなように指定して、
好きな場所に配置するし…

カレンダー上の月数の数字を先ほどのSUBTOTAL関数が入ってるセルと同じになるように「=B19」とすると…。

スライサーのボタンを押すと、カレンダー上の月数が変更され、
その月数に合わせてカレンダーも変わります!

あとはお好み色を付けて完成!

効率的なショートカットはこちら^^
【Ctrl+Shift+矢印】で範囲を指定し、
【Alt▶H▶H】で背景色設定
【Alt▶H▶F▶C】でフォントカラー設定!(バージョンで変わってるかも…

お疲れさまでした!
最後に1年分のシートを複製する

マクロ(たった4行!)

ここからはマクロボタン!
まずは「開発」タブからボタンを出しましょう。

開発タブがない!という方は↓

「挿入」の左上にある白い四角をクリック!
シート内の好きなところをクリック&ドラッグでボタンを表示させます。

(ボタンを右クリックして「テキストを編集」で、ボタンの名前を変えられます!)
ボタンを右クリックして「マクロの登録」を押し、
「新規作成」をクリックします。

VBEというマクロのプログラムコード(VBA)を入力するエディター(特別なページみたいなもの)が開けたら、
「挿入」タブの「標準モジュール」を押します。

出てきた白いページに以下のようなコードを入力します。
たった4行(+2行)なので意味も勉強してみましょう♪

Sub 名前()
 ~~~
End Sub

何か動かしたいときに必ず書かなければいけない始まりと終わりの合言葉です!
SubとEnd Subの間にある~~~の部分がプログラムとして動きます。

名前はひらがなや感じがあってもいいですが、本当は英語で書けるとスタイリッシュでいい感じです。

For i=1 To 12 
 ~~~
Next i

For文という【繰り返す】動作をしたいときに使うプログラムで、今回は「i」という変数(箱のようなイメージ)に1から12まで順番に入れて、繰り返していくよ!といった意味です。
ForとNextの間にある~~~の部分のコードを繰り返していきます。

ActiveSheet.Copy after:=ActiveSheet
ActiveSheet.Name = i & "月"

ここがメインのコードです。
中学レベルの英語で意味がわかってしまうのではないでしょうか?
「ActiveSheet」その名の通りアクティブ(今動いているor触っている)なシートです。
この「ActiveSheet」を「.」を挟んで「Copy」(コピー)します。どこにコピーするかというと、「after」(あと(後ろ))です。このコピーされている「ActiveSheet」のね。

そして、新しくコピーされて増えたシートは、コピーされたてで今現在(最新で)動いていた(動いている)ので、このコピーされたシートが「ActiveSheet」状態になっています。
このコピーされたての「ActiveSheet」の「Name」(シートの名前)を「i月」にするよ。というコードです。
「i」は先ほど【繰り返す】ことになっていた1から12までの数字が順番に入ってくるので、1週目は「i=1」で「1月」、2週目は「i=2」で「2月」…と自動で数字が切り替わっていきます。

コピペ用↓↓

Sub カレンダー複製()
For i = 1 To 12
ActiveSheet.Copy after:=ActiveSheet
ActiveSheet.Name = i & "月"
Next i
End Sub

このコードを入力出来たらこのVBEは消してOK!
ボタンを押すと12月まで12枚のシートがコピーされるようになったはずです^^

ここまで頑張った人本当にすごいです!
お疲れさまでした!

きっとExcelレベルがぐんと上がったはずです!
関数や機能に加えて、どんどんショートカットにも挑戦してみてください!

Instagramでも職場で評価バク上がりのExcel力が身に付く発信をしています♪
よければDMで感想を聞かせていただけると嬉しいです!

データ配布

データが欲しい方は下からもっていってください。

また、ファイルを開く際や保存の際に困ったことがあれば、下の記事をご覧ください。


この記事が気に入ったらサポートをしてみませんか?