今回は、Excel(エクセル)でカレンダーを作成する方法を確認していきます。せっかくExcelで作るので、ありきたりなカレンダーではなく、年や月を指定するとカレンダーの表示が自動的に切り替わる便利なものにしてみました。
本連載では、「よく使うけど忘れやすいMicrosoft Officeの操作」をキーワードに、Officeアプリケーションの使い方を解説していきます。記事の制作には、執筆時点で最新の状態にアップデートしたMicrosoft Office 2016を使用しています
DATE関数を使って、カレンダー作成の下準備
表作成ソフトであるExcelならばカレンダーの作成も容易に行えますが、実際のカレンダーを見ながらエクセルのシート上に日付を入力していくような非効率的な方法はオススメできません。年と月を指定すると自動的に表示が切り替わる便利なカレンダーを作成してみましょう。
- 年と月の入力欄を作る
- 任意のセルに「=DATE(」と入力する
- 「=DATE(年の入力セル,月の入力セル,1))」と入力し、数式を完成させる
- DATE関数を入力した直下のセルに「日」と入力する
- フィルハンドルをドラッグして曜日欄を自動入力する
以下、手順を紹介します。まずは、年と月をセルに入力します(図1)。別のセル(画面ではA3)をクリックして選択したら、数式バーに「=DATE(」と入力し、年を入力したセル(画面ではA1)をクリックして数式に入力します(図2)(図3)。「,」で区切ったら、今度は月を入力したセル(画面ではA2)をクリックして数式に入力(図4)。さらに「,」で区切って「1,))」と入力して数式を完成させます(図5)。今回の例では、「=(DATE(A1,A2,1))」が数式の完成形となります。
[Enter]キーで実行するとA3セルにDATE関数で指定した年月日が表示されるので、その下のセル(画面ではA4)に「日」と曜日を入力します(図6)。セル右下のフィルハンドルを右にドラッグすると「月、火、水……」と連続した曜日を入力できます(図7)。
WEEKDAY関数で日付を自動入力
- 曜日欄直下のセルにWEEKDAY関数を適用し、曜日から日付を導き出す
- 今回の例では、日曜日の下のセルに「=$A$3-WEEKDAY($A$3)+1」と入力
- その右隣のセルに「=A5+1」と入力し、翌日の日付を導き出す
- フィルハンドルをドラッグして、以降の日付を自動入力する
ここからが、“ずっと使える”カレンダー作成のキモになります。曜日を入力した下のセル(画面ではA5)を選択したら、数式バーに「=$A$3-WEEKDAY($A$3)+1」と入力します(図8)。この数式によって、DATE関数で指定した日付(A3セル)をもとに、WEEKDAY関数でその週の日曜日に合う日付を呼び出します。
今回の例では、2018年8月1日が水曜日なので、その週の日曜日である2018年7月29日が表示されます。続いてその右隣のセルを選択して(画面ではB5)、「=A5+1」と入力し、A5セルで設定した次の日付を指定します(図9)。セル右下のフィルハンドルをドラッグして土曜日(G6セル)までの日付を自動入力していきます(図10)。
1カ月分の日付を簡単な式で自動入力
- 「セルの書式設定」で日付のみの表示に変更する
- 2週目のセルに「前週最終日のセル+1」の式を入力。今回の例では「=G5+1」
- その右隣のセルに、「上記のセル+1」の式を入力。今回の例では「=A6+1」
- フィルハンドルをドラッグして、以降の日付を自動入力する
ここまでの操作で入力した1週間分の日付をドラッグして選択し、「ホーム」タブのリボンにある「書式」アイコンから「セルの書式設定」を選択します(図11)。「セルの書式設定」画面が表示されたら、「表示形式」タブの「分類」欄で「ユーザー定義」を選択し、「種類」欄の入力ボックスに「d」と入力して「OK」ボタンをクリックします(図12)。これでセルの表示が「d」、すなわち日付のみに変わります。
続いて2週目の日曜日のセル(画面ではA6)をクリックし、「=G5+1」という数式で連続する日付を入力します(図13)。さらに、その右のB6セルに「=A6+1」と入力(図14)し、フィルハンドルをドラッグして土曜日までの日付を入力します(図15)。あとはA6~G6までのセルをドラッグして選択し、右下のフィルハンドルを下にドラッグすれば、連続した日付が自動入力され、カレンダーができあがります(図16)。
好みで罫線を入れたり、土曜、日曜のセルに色を設定したりして見やすくカスタマイズすれば、ずっと使えるオリジナルカレンダーの完成です(図17)。年(A1セル)や月(A2セル)を変更すると、カレンダーの表示を切り替えることが可能です(図18)。確認したい月のカレンダーを簡単に表示できるので試してみてください。