• 公開日:

エクセルのマクロを使ってカレンダーから日付入力する

「日付を入力するのに、わざわざ手入力するのは面倒くさい」とお悩みの場合は、カレンダーを表示して日付を入力するツールを使ってみてください。

この記事では、エクセルでカレンダーから日付を入力できるマクロを紹介します。

ダウンロードしてすぐに使えるファイルも用意していますので、ぜひお役立てください。

Excelを使った日付選択のマクロを無料でダウンロード!

Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。

エクセルのマクロを使ってカレンダーから日付入力する

Excel 2010までは、「日付選択コントロール」というカレンダーツールから直接日付を選ぶことができましたが、2023年11月現在では使用できません。

カレンダーフォーム

そこで、今回はカレンダーのフォームから日付を選んで入力できるマクロを用意しました。

マクロ付きのファイルを配布しているほか、既存のファイルにマクロをインポートする方法も紹介します。

カレンダーから日付入力できるエクセルのファイルをダウンロード

以下のリンクより、カレンダーフォームから日付を入力できるファイルをダウンロードできます。

カレンダーから日付入力できるエクセルのファイルをダウンロードする

ダウンロード後、Zipファイルを展開すると「download-excel-date-calendar-macro.xlsm」が格納されています。

本記事では解説を分かりやすくするために「カレンダー日付マクロ.xlsm」というファイル名に変更して説明しています。

ファイルを開くと変な表示が出る場合

本記事で配布しているファイルにはマクロが含まれています。

そのため、マクロを無効にしていると「マクロが無効にされました」「マクロの実行がブロックされました」という表示が出ることがあります。

以下の記事では、エクセルでマクロを有効にする方法についてまとめています。マクロが使えない場合の参考にしてください。

Excelでマクロを有効/無効にする設定方法

それでもブロックの表示などが消えない場合は、以下の方法をお試しください。

プロパティを選択する

「エクスプローラー」を開き、②ダウンロードしたファイル(例:カレンダー日付マクロ)を右クリックし、③「プロパティ」を選択します。

許可するにチェックを入れる

「カレンダー日付マクロ.xlsmのプロパティ」ダイアログボックスが表示されます。

セキュリティの「許可する」にチェックを入れ、②「OK」ボタンを押します。

以上でマクロが使えるようになりましたので、実際にファイルを開いて確認してみてください。

既存のファイルにマクロをインポートしたい場合

今作業しているファイルにカレンダーフォームを追加したい場合は、マクロのインポートを行いましょう。

難しい操作は一切なく、簡単にインポートできます。

同時に開いていればマクロは一応使える

まずは本記事で配布している「カレンダー日付マクロ.xlsm」と「マクロを追加したいファイル」を用意し、開いておきましょう。

2つのファイルを同時に開くと、マクロがないファイルでもカレンダーのマクロが使えるようになります。

ただし、「カレンダー日付マクロ.xlsm」を閉じてしまうとマクロが使えなくなるため、基本的にはインポートすることをおすすめします。

Visual Basicを選択する

どちらのファイルでも良いので、①「開発」タブ、②「Visual Basic」の順に選択します。

リボンに「開発」タブがない場合は、以下の記事を参考にタブを追加してください。3ステップで完了します。

エクセルの開発タブを表示する方法

フォームを選択する

「Microsoft Visual Basic for Application」が起動されます。

①「VBAProject(カレンダー日付マクロ.xlsm)」の下にある「フォーム」横の+ボタンを押し、②「Form_Calendar」を選択します。

エクスポートを選択する

「ファイル」タブ、②「ファイルのエクスポート」の順に選択します。

保存する

「ファイルのエクスポート」ダイアログボックスが表示されます。

①エクスポートするファイルの保存先(例:ダウンロード)を選択し、②「保存」ボタンを押します。

インポートを選択する

エクスポートしたファイルを、もう1つのファイルにインポートしましょう。

①現在開いているもう1つのファイル(例:VBAProject(データ1.xlsx))を選択します。

「ファイル」タブ、③「ファイルのインポート」の順に選択します。

ファイルをインポートする

「ファイルのインポート」ダイアログボックスが表示されます。

①先ほど指定した保存先(例:ダウンロード)、②エクスポートしたファイル(例:Form_Calendar.frm)の順に選択し、③「開く」ボタンを押します。

標準モジュールを選択する

続けて、①「挿入」タブ、②「標準モジュール」の順に選択します。

標準モジュールにあるコードをコピーする

①「VBAProject(カレンダー日付マクロ.xlsm)」の下にある「標準モジュール」横の+ボタンを押し②「Module1」を選択します。

表示されたコードをすべて選択し、Ctrl + Cを押してコピーします。

モジュールにペーストする

①もう1つのファイル(例:VBAProject(データ1.xlsx))の下にある「Module1」を選択し、②先ほどコピーしたコードをCtrl + Vで貼り付けます。

マクロを選択する

以上でインポートは完了です。マクロが使えるようになったか確認してみましょう。

マクロをインポートした方のファイル(例:データ1.xlsx)で、①「開発」タブ、「マクロ」の順に選択します。

マクロをインポートできた

「マクロ」ダイアログボックスが表示されます。

「カレンダー」というマクロがあれば、インポートは完了です。

データを保存する際は、マクロ有効ブック(.xlsm)として保存することを忘れないでください。

マクロを使ってカレンダーから日付を入力する方法

ファイルをダウンロード、またはマクロをインポートしたら、早速カレンダーフォームから日付を入力してみましょう。

開発タブ

もし、リボンに「開発」というタブが表示されていない場合は、以下の記事を参考にタブを追加してください。

エクセルの開発タブを表示する方法

開発タブを表示できたら、以下の方法でカレンダーから日付入力を行いましょう。

マクロを選択する

日付を入力したいセル(例:B3)を選択し、②「開発」タブ、③「マクロ」の順に選択します。

マクロを実行する

「マクロ」ダイアログボックスが表示されます。

「カレンダー」というマクロが選択されていることを確認し、「実行」ボタンを押します。

日付を選択する

マクロを実行すると、「日付を選択する」というダイアログが表示されます。

簡単にボタンの説明をしますので、以下の表をご覧ください。

ボタン機能
1週間前に戻ります
1週間後に進みます
前月31日分、前に戻ります
次月31日分、次に進みます
今日今日の日付を入力します

セルに日付を入力するには、任意の日付(例:2023年11月10日)を選択します。

日付が入力された

選択した日付がセルに入力されました。

日付を入力したあともダイアログは消えませんので、セルを変えて、続けて日付を入力することもできます。

カレンダーをカスタマイズしたい場合

カレンダーのフォーム

カレンダーの背景色や、今日の日付の色、またはフォントサイズを変更したいという場合は、以下の方法をお試しください。

Visual Basicを選択する

「開発」タブ、②「Visual Basic」の順に選択します。

コードの表示を選択する

「フォーム」横の+ボタンを押し、②「Form_Calendar」、③「コードの表示」の順に選択します。

コードが表示される

コードが表示されますので、気になる箇所をカスタマイズしていきましょう。

以下の表では、カスタマイズできる主な項目に絞って簡単に紹介しています。

項目コード詳細
日付のサイズPrivate Const LABEL_TOP As Long = 55
Private Const LABEL_LEFT As Long = 85
Private Const LABEL_WIDTH As Long = 42
Private Const LABEL_HEIGHT As Long = 26
日付が表示されているエリアを指します
TOPは上、LEFTは左、WIDTHは幅、HEIGHTは高さを表します
それぞれの数値を変更することで、日付エリアの大きさを変更できます
ボタンのサイズPrivate Const COMMAND_TOP As Long = 6
Private Const COMMAND_LEFT As Long = 85
Private Const COMMAND_WIDTH As Long = 50
Private Const COMMAND_HEIGHT As Long = 24
今日、↑、↓などのボタンの大きさを変更できます
カレンダーの背景色Private Property Get BACK_COLOR() As Long
BACK_COLOR = RGB(255, 255, 255)
End Property
カレンダーのフォームの背景色を変更できます
RGBの数値を変更することで、任意の色に変更できます
RGB(255, 255, 255)は白を表します
今日の日付の色Private Property Get TODAY_COLOR() As Long
TODAY_COLOR = RGB(160, 206, 236)
End Property
今日の日付の色を変更します
RGB(160, 206, 236)は水色を表します
土曜日の色Private Property Get SATURDAY_COLOR() As Long
SATURDAY_COLOR = RGB(0, 103, 192)
End Property
土曜日の日にちの文字色を変更します
RGB(0, 103, 192)は青を表します
日曜日の色Private Property Get SUNDAY_COLOR() As Long
SUNDAY_COLOR = RGB(220, 20, 60)
End Property
日曜日の日にちの文字色を変更します
RGB(220, 20, 60)は赤を表します
今日の日付のボタンSet DateCommand = Me.Controls("DateTODAY")

With DateCommand
.Font.Name = "メイリオ"
.Font.Size = 9
End With
「今日」と表示されているボタンです
「Font.Name」でフォントを、「Font.Size」で文字サイズを変更できます

他のボタン(前月、次月)でも同じように見た目を変更できます

もちろん、その他の項目もカスタマイズは可能です。

ただし、レイアウトが大きく崩れてしまう可能性があるため、基本的にはおすすめできません。

自分で機能を追加するなどの大きなカスタマイズを行う場合は、必ずファイルをコピーするなりしてバックアップを取ることをおすすめします。

コードを変更する

ここでは例として、「今日」のボタンの文字サイズを変更してみます。

文字サイズは「Font.Size」の後に続く数値を変更することで、大きさを自由に変えられます。

標準では9に設定されていますので、①任意の文字サイズ(例:12)を入力し、②「Sub/ユーザーフォームの実行」を選択します。

文字サイズを変更できた

「今日」のボタンを見てみると、文字サイズが大きくなっていることが分かります。

今日のボタンはよく使うかと思いますので、かえって目立って良いかもしれません。

コードの数値などを変えるだけで簡単にカスタマイズできますので、自分の使いやすいように変更してみてください。

カレンダーを一瞬で開くショートカットを作成する

マクロには任意のショートカットを割り当てることができます。

カレンダーのフォームをすぐに開きたい場合は、以下の方法でショートカットを作成しましょう。

マクロを選択する

「開発」タブ、②「マクロ」の順に選択します。

オプションを選択する

「マクロ」ダイアログボックスが表示されます。

「カレンダー」というマクロが表示されていることを確認し、「オプション」ボタンを押します。

ショートカットキーを設定する

「マクロ オプション」ダイアログボックスが表示されます。

「ショートカットキー」の下にあるボックスを選択し、任意のショートカット(例:Ctrl + Shift + K)を設定し、②「OK」ボタンを押します。

ショートカットキーで開くことができた

設定したショートカットキー(例:Ctrl + Shift + K)を押すと、カレンダーのマクロが実行されます。