Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

先々の予定をしっかり立てたい方や、スケジュールが忙しい方にとって、Excelのカレンダーは非常に便利なツールです。この記事では、Excelで年間カレンダーを作成する手順を、詳しい解説とともにステップごとにご紹介します。ここで作成するカレンダーの最大の特徴は、動的かつインタラクティブであるという点です。つまり、年の数値を変更するだけで、カレンダーが自動的に更新されます。さらに、ExcelのVBAを使って月間カレンダーを作成する方法についても解説します。

練習用ワークブックは、以下のリンクからダウンロードできます。

Excelで年間カレンダーを作成する4つのステップ

チュートリアルの詳細に入る前に、まず完成形のイメージをご覧ください。ここでは年間カレンダーを作成しており、土曜日と日曜日(週末)は薄いオレンジ色で、祝日は濃いオレンジ色で表示されます。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

この記事ではMicrosoft Excel 365を使用していますが、お使いの環境に合わせて他のバージョンでも問題なく作業できます。

📌 ステップ01:基本のレイアウトを作成する

  • 最初のステップでは、12か月分を3列×4行に配置して、カレンダーの枠組みを作成します。
  • 次に、1週間の7曜日を入力し、週末(この場合は土曜日日曜日)を目立たせるために強調表示します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

関連記事: Excelで週間カレンダーを作成する方法(3つの方法)

📌 ステップ02:月名を入力する

  • 次に、セルB4を選択し、数字の1を入力して、キーボードのCtrl + 1キーを押します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

すると、「セルの書式設定」ダイアログボックスが開きます。

  • まず「表示形式」タブに移動し、「ユーザー定義」を選択します。「種類」欄に"January"(ダブルクォーテーションで囲む)と入力し、最後に「フォント」タブへ移動します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

  • 続いて、フォントスタイルで太字斜体を選択し、任意の文字色(ここでは紫)を指定して、「OK」ボタンをクリックします。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

  • 次に、セル範囲B4:H4を選択し、Ctrl + 1キーを押して「セルの書式設定」ウィンドウを開きます。
  • 「配置」タブに進み、「横位置」セクションで「選択範囲内で中央」を選択して、「OK」ボタンを押します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

これで、下の画像のように月名January(1月)が表示されるはずです。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

  • 同様の手順を他の月にも繰り返すと、以下のような出力になります。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

関連記事: テンプレートを使わずにExcelでカレンダーを作成する方法(2つの例)

📌 ステップ03:Excel関数で動的カレンダーを作る

  • 3番目のステップとして、セルB6に以下の数式を入力します。

=IF(MONTH(DATE($B$2,$B$4,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$2,$B$4,1),2))=$B$4,DATE($B$2,$B$4,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$2,$B$4,1),2),"")

ここで、セルB22022年、セルB41月をそれぞれ参照しています。

📃 注意: SEQUENCE関数はExcel 365、Excel 2021、およびExcel for the webでのみ使用できます。互換性のあるバージョンを使用していることを確認してください。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

  • Enterキーを押すと、数式によって1月の日付がすべて自動的に入力されます。

📃 注意: Ctrl + 1キーで「セルの書式設定」ウィンドウを開き、日付の表示形式を「d」(日のみ)に変更してください。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

最終的な結果は、下の画像のようになります。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

📌 ステップ04:カレンダーに祝日を表示する

  • 4番目で最後のステップでは、新しいシートに下図のように祝日のリストを作成します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

  • 次に、セル範囲B6:H11を選択し、「条件付き書式」ドロップダウンから「新しいルール」を選択します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

すぐに「新しい書式ルール」ウィザードが表示されます。

  • 「数式を使用して、書式設定するセルを決定」オプションを選択します。
  • その後、「ルールの内容」欄に以下の数式を入力します。

=ISNUMBER(VLOOKUP(B6,Holidays!$C:$C,1,0))

ここで、セルB61月月曜日を指し、Holidays!$C:$CHolidaysシート内の日付を表しています。

数式の解説:

  • VLOOKUP(B6,Holidays!$C:$C,1,0) → VLOOKUP関数は、テーブルの左端の列で値を検索し、指定した列から同じ行の値を返します。ここでは、B6検索値引数)がHolidays!$C:$C範囲引数)の中から照合されます。1列番号引数)は検索値の列番号を示し、最後の0検索方法引数)は検索値との完全一致を意味します。
    • 出力 → #N/A
  • ISNUMBER(VLOOKUP(B6,Holidays!$C:$C,1,0)) 上記の結果を受けて
    • ISNUMBER(#N/A) → ISNUMBER関数は、値が数値であるかどうかを判定し、TRUEまたはFALSEを返します。ここでは#N/A引数であり、数値ではないため関数はFALSEを返します。
    • 出力 → FALSE

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

これにより、1月1日の祝日が濃いオレンジ色で強調表示されます。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

同じ要領で他の月にも同じ処理を適用すると、以下のような出力になります。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

VBAで月間カレンダーを作成する方法

月間カレンダーを作りたい場合はどうすればよいのでしょうか? 次の方法で解決できます! ここではVBAコードを使って作業を自動化します。それでは実際に見てみましょう。

📌 手順

  • まず、「開発」タブに移動し、「Visual Basic」ボタンをクリックします。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

新しいウィンドウでVisual Basic Editorが開きます。

  • 次のステップでは、「挿入」タブから「標準モジュール」を選択します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

参考までに、以下のコードをコピーしてウィンドウに貼り付けてください。

Sub CalendarMaker()
'This code was taken from extendoffice.com
       ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
          Scenarios:=False
       Application.ScreenUpdating = False
       On Error GoTo MyErrorTrap
       
       Range("a1:g14").Clear
       MyInput = InputBox("Type in Month and year for Calendar ")
       If MyInput = "" Then Exit Sub
       StartDay = DateValue(MyInput)
       If Day(StartDay) <> 1 Then
           StartDay = DateValue(Month(StartDay) & "/1/" & _
               Year(StartDay))
       End If
       
       Range("a1").NumberFormat = "mmmm yyyy"
       With Range("a1:g1")
           .HorizontalAlignment = xlCenterAcrossSelection
           .VerticalAlignment = xlCenter
           .Font.Size = 18
           .Font.Bold = True
           .RowHeight = 35
       End With

       With Range("a2:g2")
           .ColumnWidth = 11
           .VerticalAlignment = xlCenter
           .HorizontalAlignment = xlCenter
           .VerticalAlignment = xlCenter
           .Orientation = xlHorizontal
           .Font.Size = 12
           .Font.Bold = True
           .RowHeight = 20
       End With

       Range("a2") = "Sunday"
       Range("b2") = "Monday"
       Range("c2") = "Tuesday"
       Range("d2") = "Wednesday"
       Range("e2") = "Thursday"
       Range("f2") = "Friday"
       Range("g2") = "Saturday"

       With Range("a3:g8")
           .HorizontalAlignment = xlRight
           .VerticalAlignment = xlTop
           .Font.Size = 18
           .Font.Bold = True
           .RowHeight = 21
       End With

       Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
       DayofWeek = Weekday(StartDay)
       CurYear = Year(StartDay)
       CurMonth = Month(StartDay)
       FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
       Select Case DayofWeek
           Case 1
               Range("a3").Value = 1
           Case 2
               Range("b3").Value = 1
           Case 3
               Range("c3").Value = 1
           Case 4
               Range("d3").Value = 1
           Case 5
               Range("e3").Value = 1
           Case 6
               Range("f3").Value = 1
           Case 7
               Range("g3").Value = 1
       End Select

       For Each cell In Range("a3:g8")
           RowCell = cell.Row
           ColCell = cell.Column
           If cell.Column = 1 And cell.Row = 3 Then
           ElseIf cell.Column <> 1 Then
               If cell.Offset(0, -1).Value >= 1 Then
                   cell.Value = cell.Offset(0, -1).Value + 1

                   If cell.Value > (FinalDay - StartDay) Then
                       cell.Value = ""
                       Exit For
                   End If
               End If
               
           ElseIf cell.Row > 3 And cell.Column = 1 Then
               cell.Value = cell.Offset(-1, 6).Value + 1
               If cell.Value > (FinalDay - StartDay) Then
                   cell.Value = ""
                   Exit For
               End If
           End If
       Next

       For x = 0 To 5
           Range("A4").Offset(x * 2, 0).EntireRow.Insert
           With Range("A4:G4").Offset(x * 2, 0)
               .RowHeight = 65
               .HorizontalAlignment = xlCenter
               .VerticalAlignment = xlTop
               .WrapText = True
               .Font.Size = 10
               .Font.Bold = False
               .Locked = False
           End With

           With Range("A3").Offset(x * 2, 0).Resize(2, _
           7).Borders(xlLeft)
               .Weight = xlThick
               .ColorIndex = xlAutomatic
           End With

           With Range("A3").Offset(x * 2, 0).Resize(2, _
           7).Borders(xlRight)
               .Weight = xlThick
               .ColorIndex = xlAutomatic
           End With
           Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _
              Weight:=xlThick, ColorIndex:=xlAutomatic
       Next
       If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _
          .Resize(2, 8).EntireRow.Delete

       ActiveWindow.DisplayGridlines = False
       ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
          Scenarios:=True

       ActiveWindow.WindowState = xlMaximized
       ActiveWindow.ScrollRow = 1

       Application.ScreenUpdating = True
       Exit Sub

MyErrorTrap:
       MsgBox "You may not have entered your Month and Year correctly." _
           & Chr(13) & "Spell the Month correctly" _
           & " (or use 3 letter abbreviation)" _
           & Chr(13) & "and 4 digits for the Year"
       MyInput = InputBox("Type in Month and year for Calendar")
       If MyInput = "" Then Exit Sub
       Resume
   End Sub

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

  • その後、VBAウィンドウを閉じ、「マクロ」ボタンをクリックします。

「マクロ」ダイアログボックスが開きます。

  • 続いて、CalendarMakerマクロを選択し、「実行」ボタンを押します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

するとインプットボックスが開くので、下図のように月名を入力します。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

その結果、以下のような出力が得られます。

Excelで年間カレンダーを作成する方法|初心者向け4ステップ解説

まとめ

この記事が、Excelで年間カレンダーを作成する方法を理解する一助となれば幸いです。ご不明な点がある場合は、下のコメント欄でお気軽にお尋ねください。また、このような記事をもっと読みたい方は、ワンストップのExcelソリューション提供サイトExcelDemyもぜひご覧ください。

関連記事

  • Excelで白紙のカレンダーを作成する方法(無料テンプレートダウンロード付き)

  1. Excelで図書館データベースを作成する方法|初心者向け簡単ステップ解説

    Microsoft Excelは会計処理やデータ管理、予測分析などに使われることが多いソフトウェアですが、実は優れたデータベースソフトとしても活用できます。Excelはデータの入力・管理ツールとして非常に強力で、内蔵された機能を組み合わせれば、あらゆる種類のデータベースを簡単に構築できます。この記事では、Excelで図書館データベースを作成する方法と、フォームを使ってデータを入力する手順を詳しく解説します。 図書館データベースとは? データベースとは、電子的に保存され、必要に応じてアクセスできるように整理されたデータの集合体を指します。データの保存先は、ローカル環境でもオンラインのクラウド上

  2. ExcelでXMLマッピングを作成する方法|初心者向け3ステップ完全ガイド

    この記事では、ExcelでXMLマッピングを作成するための簡単な手順を解説します。ファイルを異なるプログラムやOSで利用できるようにするには、ファイル形式の変換が必要になることがよくあります。用途に応じて、XMLとXLSXはAndroidやWindows環境で最も広く使われているファイル形式の2つです。そのため、XMLからExcelへ、あるいはExcelからXMLへの変換は、現代のビジネスシーンにおいて非常に重要なスキルとなっています。 練習用ワークブックとXML構造ファイルは、記事内のリンクからダウンロードできます。 ExcelでXMLマッピングを作成する手順 ExcelでXMLマッピングを