Excelでインタラクティブなカレンダーを簡単に作る2つの方法【月間・年間】
忙しい日常の中で、カレンダーは欠かせないツールです。部屋には壁掛けカレンダー、スマホや腕時計にはポケットカレンダーがあるかもしれません。しかし、Microsoft Excelでインタラクティブなカレンダーを自作するのはとても楽しく、その仕上がりも満足のいくものになります。インタラクティブなカレンダーなら、月や年を変更するだけで、下のアニメーションのように自動的にカレンダーが切り替わります。この記事では、Excelでインタラクティブなカレンダーを作成する方法を詳しく解説します。

無料のExcelワークブックをダウンロードして、ぜひご自身でも練習してみてください。
Excelでインタラクティブなカレンダーを作る2つの簡単な方法
この記事では、Excelでインタラクティブなカレンダーを作る2つのアプローチをご紹介します。1つ目の方法は「月間カレンダー」、2つ目の方法は「年間カレンダー」の作成手順です。
どちらの手順でも、以下のサンプルデータを使用します。データは2種類あり、1つ目は2023年の連邦祝日(祝日リスト)、2つ目は1年12か月の月名リストです。

方法1:Excelでインタラクティブな月間カレンダーを作成する
まずは、月間カレンダーの作成プロセスを見ていきましょう。数式と書式設定を組み合わせることで実現できます。以下の手順に従って進めてください。
ステップ1:入力フィールドを作成する
- 新しいシートに、ユーザーが入力するための4つのフィールドを作成し、下の画像のように名前を付けます。
- 2023年の月間カレンダーを作るため、「年」フィールドに「2023」と入力します。

ステップ2:データの入力規則を設定する
- 次に、月見出しの下にあるセルC5を選択し、リボンの[データ]タブに移動します。
- 続いて、[データツール]グループから[データの入力規則]を選択します。

ステップ3:ドロップダウンリストを作る
- [入力値の種類]ドロップダウンで[リスト]を選択し、[元の値]ボックスでサンプルデータシート内の12か月分の範囲を選択します。
- その後、[OK]をクリックします。

- これでセルC5に12か月分のドロップダウンリストが作成され、後の作業で役立ちます。
ステップ4:7×7のテーブルを作る
- 次に、下の画像のような7×7のテーブルをワークシート上に作成します。
- テーブル上部の7列には、月曜日から始まる曜日名を順番に入力します。

ステップ5:動的なヘッダーを作る
- カレンダーのヘッダーを動的にするため、結合セルB7:H7に、セルC5とC4の値を連結する次の数式を入力します。
=C5&" "&C4

ステップ6:ヘッダーの確認
- 前のステップまで完了すると、カレンダーヘッダーは下の画像のようになります。
- セルC4またはC5の値を変更すると、ヘッダーも自動的に更新されます。

ステップ7:MATCH関数で月の位置を取得する
- このステップでは、セルG4にMATCH関数を使った次の数式を入力します。
=MATCH(C5,'Data Set'!$B$17:$B$28,0)
- MATCH関数は、セルC5の値(月名)をサンプルデータのB17:B28範囲内で検索し、その月の相対的な位置を返します。

ステップ8:結果の確認
- Enterキーを押すと、セルG4にセルC5で選択した月の番号が表示されます。

ステップ9:WEEKDAY関数とDATE関数で月初の曜日を求める
- ここでは、各月の最初の曜日を数値で求めます。1が月曜日、2が火曜日という具合です。
- そのために、セルG5にWEEKDAY関数とDATE関数を組み合わせた次の数式を入力します。
=WEEKDAY(DATE($C$4,$G$4,1),2)
- DATE関数は、指定した年月の1日を表示します。
- 組み合わせた数式により、WEEKDAY関数が各月の最初の曜日を返します。
- 週の始まりを月曜日にしたいので、戻り値の種類として2を指定しています。

ステップ10:結果の確認
- 数式の結果、2023年1月の最初の曜日に対応する数字7(日曜日を意味する)が表示されます。

ステップ11:SEQUENCE関数で表を埋める
- このステップでは、先ほど作成したテーブルに数字を入力していきます。
- セルB9にSEQUENCE関数を使った次の数式を入力します。
=SEQUENCE(6,7)

ステップ12:1~42の連番を確認
- テーブルは6行7列なので、上記の関数によって1~42の連番が順番に入力されます。

ステップ13:数字を日付に変換する
- 次に、これらの数字を日付に変換します。前のステップの数式にDATE関数を追加しましょう。
- セルB9に次の数式を入力します。
=DATE(C4,G4,1)+SEQUENCE(6,7)

ステップ14:日付の表示を確認
- 数式を入力してEnterキーを押すと、下の画像のような結果が得られます。

ステップ15:表示形式を変更する
- 現時点では出力が正しい書式で表示されていません。
- 修正するには、セル範囲B9:H14を選択し、[ホーム]タブの[数値]グループにある[表示形式]ドロップダウンを開きます。

ステップ16:「短い日付形式」を選択
- ドロップダウンから、選択したセル範囲の書式として[短い日付形式]を選びます。

ステップ17:開始日のずれを確認
- 書式変更後の結果は下の画像のようになります。
- しかし画像を見ると、2023年1月の開始日が正しくありません。
- そこで、セルG5の値(7)に合わせて、2023年1月の開始日が日曜日になるよう調整します。

ステップ18:開始日を補正する
- セルB9に次の数式を入力します。前の数式の値からセルG5の値を引くことで補正します。
=DATE(C4,G4,1)+SEQUENCE(6,7)-G5

ステップ19:正しい開始日の確認
- 下の画像のように、2023年1月1日の開始日が日曜日になりました。
- ただし、前月や翌月の日付がいくつか含まれています。

ステップ20:余分な日付を削除する
- カレンダーから余分な日付を取り除きましょう。セルB9に次の組み合わせ数式を入力します。
=IF(MONTH(DATE(C4,G4,1)+SEQUENCE(6,7)-G5)=G4,DATE(C4,G4,1)+SEQUENCE(6,7)-G5,"")
数式の解説
- DATE(C4,G4,1)+SEQUENCE(6,7)-G5:この部分は、セルC4、G4、G5の値をもとに、曜日を考慮しながら日付を連続的に並べます。
- IF(MONTH(...)=G4,...,""):月の判定条件を加え、当該月以外の日付を空白にすることで、対象月の日付だけを表示します。

ステップ21:余分な日付が消えたことを確認
- 前のステップの結果、月間カレンダーから余分な日付が消えていることがわかります。

ステップ22:日付だけを表示する書式設定
- さらに、テーブル内の日付の書式を変換します。データ範囲B9:H14を選択した状態で右クリックします。
- コンテキストメニューから[セルの書式設定]を選択します。

ステップ23:ユーザー定義で「dd」を指定
- [セルの書式設定]ダイアログボックスが表示されます。
- まず[ユーザー定義]タブに移動します。
- [種類]欄に「dd」と入力します。
- 最後に[OK]をクリックします。

ステップ24:日のみ表示を確認
- 前のステップにより、テーブルには日付の「日」の部分だけが表示されます。

ステップ25:週末の色を変更
- さらに、カレンダー内の週末(土日)のフォント色を黒から赤に変更すると、より見やすくなります。

ステップ26:月の切り替えをテスト
- セルC5のドロップダウンから月名を変更すると、下の画像のように月間カレンダーの日付も自動的に切り替わります。

ステップ27:祝日をハイライトする準備
- 続くステップでは、各月の祝日をハイライト表示する方法を解説します。
- まず、セル範囲B5:H14を選択します。
- 次に、リボンの[ホーム]タブから[条件付き書式]を選択します。
- ドロップダウンから[新規ルール]を選びます。

ステップ28:ISNUMBER関数とVLOOKUP関数でルールを作成
- [新規書式ルール]ダイアログボックスが表示されます。
- [ルールの種類を選択してください]で[数式を使用して、書式設定するセルを決定]を選択します。
- 数式ボックスに、ISNUMBER関数とVLOOKUP関数を組み合わせた次の数式を入力します。
=ISNUMBER(VLOOKUP(B9,'Data Set'!$C:$C,1,0))
- 最後に[書式]をクリックして、上記の数式がTRUEになるセルの書式を設定します。

数式の解説
- VLOOKUP(B9,'Data Set'!$C:$C,1,0):VLOOKUP関数は、Data Setワークシートの祝日テーブルの左端の列で値を検索し、同じ行の指定した列の値を返します。
- ISNUMBER(VLOOKUP(...)):ISNUMBER関数は、前のステップの結果が数値かどうかをチェックし、TRUEまたはFALSEを返します。TRUEになれば、その日は祝日であることを意味します。
ステップ29:書式を適用する
- 好みの色やフォントスタイルを選択し、[OK]をクリックして数式を適用します。

ステップ30:完成した月間カレンダー
- 以上で、条件付き書式によって祝日がハイライトされた月間カレンダーの完成です。下の画像のようになります。

ステップ31:他の月も確認
- セルC5の値を変更すれば、書式設定がすべて反映されたまま、他の月のカレンダーを表示できます。

あわせて読みたい: Excelで週間カレンダーを作成する方法(3つの有効な方法)
方法2:Excelでインタラクティブな年間カレンダーを作成する
このセクションでは、インタラクティブな年間カレンダーを作成する手順を順を追って解説します。基本的な流れは月間カレンダーと似ていますが、作成・書式設定の過程でいくつか違いがあります。それでは、以下の手順を見ていきましょう。
ステップ1:12個の7×7テーブルを作る
- まず、下の画像のように7×7のテーブルを12個作成します。
- 各テーブルには、月曜日から始まる曜日名を順番に入力します。

ステップ2:月番号を入力する
- 次に、最初のテーブルの真上にあるセルB6に「1」と入力します。

ステップ3:セルの書式設定を開く
- Enterキーを押した後、セルB6を右クリックします。
- コンテキストメニューから[セルの書式設定]を選択します。

ステップ4:ユーザー定義で月名を表示する
- [セルの書式設定]ダイアログボックスが表示されます。
- [ユーザー定義]タブに移動し、[種類]欄に「January」と入力します。
- 最後に[OK]をクリックします。

ステップ5:「January」表示の確認
- [OK]を押すと、最初のテーブルのヘッダーにJanuaryと表示されます。セルの実際の値は「1」のままですが、表示だけが月名に変わります。

ステップ6:すべてのテーブルに月名を設定
- 同様の手順で、他のテーブルにも名前を付けていきます。
- すべてのテーブルに、1~12の数字に対応する12か月分の月名を設定しましょう。

ステップ7:ヘッダーに色を付ける
- さらに、下の画像のようにテーブルのヘッダーにお好みの色を付けると、デザイン性が向上します。

ステップ8:1月の日付を生成する数式
- このステップでは、最初の月の日付を作成するため、セルB8に次の数式を入力します。
=IF(MONTH(DATE($B$4,B6,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$4,B6,1),2))=B6,DATE($B$4,B6,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$4,B6,1),2),"")
- この数式は、月間カレンダーのセクションで使用したものと同じロジックです。
- このシートでは年と月の入力フィールドを別途作成していないため、すべての処理を1つの数式にまとめています。

ステップ9:1月の日付を確認し週末を着色
- Enterキーを押すと、追加の書式設定なしで2023年1月の日付が正しい順序で表示されます。
- さらに、週末(土日)にあたる日付のフォント色を赤に変更しましょう。

ステップ10:全テーブルに数式を適用
- 同様に、すべての月のテーブルの先頭セルに上記の数式を入力すると、下の画像のようにそれぞれの日付が表示されます。

ステップ11:1月の祝日ハイライト準備
- このステップでは、年初めの月の祝日をハイライトします。
- まず、セル範囲B8:H13を選択します。

ステップ12:条件付き書式を開く
- [ホーム]タブに移動し、[条件付き書式]を選択します。
- ドロップダウンから[新規ルール]コマンドを選びます。

ステップ13:月間カレンダーと同じルールを設定
- 月間カレンダーのセクションと同様に、[書式ルールの編集]ボックスを同じように設定します。
- ここでも、ISNUMBER関数とVLOOKUP関数を組み合わせた同じ数式を使用します。
- すべての編集が終わったら[OK]をクリックします。
=ISNUMBER(VLOOKUP(B9,'Data Set'!$C:$C,1,0))

ステップ14:1月の祝日ハイライトを確認
- これで、年間カレンダーにおける1月の日付は下の画像のようになります。
- 条件付き書式により、すべての祝日がハイライト表示されています。

ステップ15:他の月にも適用
- 同様に、残りの11か月にも条件付き書式を適用して、それぞれの祝日をハイライトしましょう。

ステップ16:年の切り替えをテスト
- 最後に、セルB4の年の値を変更すると、その年に応じたカレンダーが自動的に更新されます。

あわせて読みたい: テンプレートを使わずにExcelでカレンダーを作る方法(2つの例)
まとめ
以上で記事は終わりです。この記事がお役に立てば幸いです。上記の手順を読み進めることで、Excelでインタラクティブなカレンダーを作成できるようになります。ご不明な点やご要望がありましたら、コメント欄でお気軽にお知らせください。
ExcelDemyチームは、皆さまのご意見を大切にしています。コメントいただいた際には、問題解決まで少々お時間をいただき、最善のソリューションでご質問にお答えいたします。
関連記事
- Excelで週間カレンダーを作成する方法(3つの有効な方法)
- Excelで白紙のカレンダーを作る方法(無料テンプレートダウンロード)
-
Excelでセルの色を基準にフィルターする2つの簡単な方法
Excelでは、目的に応じてさまざまな色でセルを塗りつぶすことがよくあります。ワークシート内で色を使ってデータの種類を区別しており、特定の色が付いたセルだけを抽出・選択したい場合、この記事が役立ちます。ここでは、Excelでセルの色を基準にフィルター処理を行う方法をわかりやすく解説します。 理解を深めながら実際に練習できるよう、サンプルのExcelブックをダウンロードしてご利用ください。 Excelでセルの色別にフィルターする2つの便利な方法 以下の2つの方法では、「フィルター」コマンドと「検索」コマンドを使用して、セルの色を基準にデータを絞り込む手順を学べます。記事内では、異なる色を付け
-
Excelでアンケートを作成する2つの簡単な方法【手動入力とVBA】
この記事では、Excelでアンケート(質問票)を作成する方法を解説します。アンケートとは、質問や特定の項目に対して選択肢を設け、回答者から情報を収集するためのツールです。Excelを使えば、いくつかの簡単な手順だけで誰でもアンケートを作成できます。本記事では2つの簡単な方法をご紹介します。これらの方法をマスターすれば、Excelでのアンケート作成がぐっと楽になります。それでは早速始めましょう。 練習用ワークブックはこちらからダウンロードできます。 Excelでアンケートを作成する2つの方法 Excelでアンケートを作成するには、主に2つの方法があります。 1つ目の方法は、手動でアンケートを作成