- 公開日:
エクセルのマクロを使ってカレンダーから日付入力する
「日付を入力するのに、わざわざ手入力するのは面倒くさい」とお悩みの場合は、カレンダーを表示して日付を入力するツールを使ってみてください。
この記事では、エクセルでカレンダーから日付を入力できるマクロを紹介します。
ダウンロードしてすぐに使えるファイルも用意していますので、ぜひお役立てください。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
エクセルのマクロを使ってカレンダーから日付入力する
Excel 2010までは、「日付選択コントロール」というカレンダーツールから直接日付を選ぶことができましたが、2023年11月現在では使用できません。
そこで、今回はカレンダーのフォームから日付を選んで入力できるマクロを用意しました。
マクロ付きのファイルを配布しているほか、既存のファイルにマクロをインポートする方法も紹介します。
カレンダーから日付入力できるエクセルのファイルをダウンロード
以下のリンクより、カレンダーフォームから日付を入力できるファイルをダウンロードできます。
カレンダーから日付入力できるエクセルのファイルをダウンロードする
ダウンロード後、Zipファイルを展開すると「download-excel-date-calendar-macro.xlsm」が格納されています。
本記事では解説を分かりやすくするために「カレンダー日付マクロ.xlsm」というファイル名に変更して説明しています。
ファイルを開くと変な表示が出る場合
本記事で配布しているファイルにはマクロが含まれています。
そのため、マクロを無効にしていると「マクロが無効にされました」「マクロの実行がブロックされました」という表示が出ることがあります。
以下の記事では、エクセルでマクロを有効にする方法についてまとめています。マクロが使えない場合の参考にしてください。
それでもブロックの表示などが消えない場合は、以下の方法をお試しください。
①「エクスプローラー」を開き、②ダウンロードしたファイル(例:カレンダー日付マクロ)を右クリックし、③「プロパティ」を選択します。
「カレンダー日付マクロ.xlsmのプロパティ」ダイアログボックスが表示されます。
①セキュリティの「許可する」にチェックを入れ、②「OK」ボタンを押します。
以上でマクロが使えるようになりましたので、実際にファイルを開いて確認してみてください。
既存のファイルにマクロをインポートしたい場合
今作業しているファイルにカレンダーフォームを追加したい場合は、マクロのインポートを行いましょう。
難しい操作は一切なく、簡単にインポートできます。
まずは本記事で配布している「カレンダー日付マクロ.xlsm」と「マクロを追加したいファイル」を用意し、開いておきましょう。
2つのファイルを同時に開くと、マクロがないファイルでもカレンダーのマクロが使えるようになります。
ただし、「カレンダー日付マクロ.xlsm」を閉じてしまうとマクロが使えなくなるため、基本的にはインポートすることをおすすめします。
どちらのファイルでも良いので、①「開発」タブ、②「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」の順に選択します。
①「フォーム」横の+ボタンを押し、②「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)を押すと、カレンダーのマクロが実行されます。